Что контролирует, открывает ли PhoneGap внешний браузер / Safari?

Иногда PhoneGap открывает веб-страницы в Safari, иногда он открывает их в своем UIWebView, что контролирует это?

1 ответ

Решение

От PhoneGap поддерживает нормальный веб?:

https://github.com/callback/callback-ios/blob/master/PhoneGapLib/Classes/PhoneGapDelegate.m#L669 показывает, что:

  1. если URL имеет разрыв схемы: // он не открывает Safari
  2. если в URL есть файл схемы: // он не открывает Safari
  3. если установлена ​​политика OpenAllWhitelistURLsInWebView, Safari не открывается.
  4. если navigationType == UIWebViewNavigationTypeOther && mainDocument != nil затем он открывает Safari.

Разработка на 4:

  • ~ NavTypeOther означает, что навигация не из: щелчка по ссылке, кнопки назад / вперед, перезагрузки или повторной отправки формы. (AKA window.location.href assignment, или же window.open(...))
  • mainDocument != nil означает, что ссылка не из iFrame? и / или не имеет цели?

В общем, я думаю, что в UIWebView открываются только щелчки по ссылкам (если только они не являются gap: // или file:// links, или эта политика не установлена).

Другие вопросы по тегам