Что контролирует, открывает ли PhoneGap внешний браузер / Safari?
Иногда PhoneGap открывает веб-страницы в Safari, иногда он открывает их в своем UIWebView, что контролирует это?
1 ответ
Решение
От PhoneGap поддерживает нормальный веб?:
https://github.com/callback/callback-ios/blob/master/PhoneGapLib/Classes/PhoneGapDelegate.m#L669 показывает, что:
- если URL имеет разрыв схемы: // он не открывает Safari
- если в URL есть файл схемы: // он не открывает Safari
- если установлена политика OpenAllWhitelistURLsInWebView, Safari не открывается.
- если
navigationType == UIWebViewNavigationTypeOther && mainDocument != nil
затем он открывает Safari.
Разработка на 4:
- ~ NavTypeOther означает, что навигация не из: щелчка по ссылке, кнопки назад / вперед, перезагрузки или повторной отправки формы. (AKA
window.location.href assignment
, или жеwindow.open(...)
) mainDocument != nil
означает, что ссылка не из iFrame? и / или не имеет цели?
В общем, я думаю, что в UIWebView открываются только щелчки по ссылкам (если только они не являются gap: // или file:// links, или эта политика не установлена).