Что контролирует, открывает ли PhoneGap браузер Android? - PullRequest
1 голос
/ 15 декабря 2011

Иногда PhoneGap открывает веб-страницы в браузере Android, иногда он открывает их в своем UIWebView. Поведение зависит от версии Android. Например, в ICS window.open () открывает ссылки в браузере Android, но эмулятор 2.3 открывает такие ссылки в WebView.

Что контролирует, открывается ли ссылка в браузере Android или в WebView?

1 Ответ

1 голос
/ 24 декабря 2011

То, что я нашел до сих пор:

Вещи, которые запускают метод shouldOverrideUrlLoading, запустят внешний браузер, если:

  • URL-адрес не указан в белом списке
  • некоторые схемы (sms:, tel:, geo:, mailto:)

Но метод shouldOverrideUrlLoading не всегда срабатывает - на Android 2.2 и более ранних версиях(а может и 2,3?). Методы Javascript, запускающие загрузку страницы (например, window.open() или document.location.href =), не запускают метод и поэтому независимо загружаются в WebView.

Ссылки, физически нажимаемые пользователем, похоже, всегда запускают метод.Использование механизма событий JS для запуска события щелчка по ссылке также может работать, я не пробовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...