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

1

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

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

  • 0
    Я обнаружил, что в ICS подкласс WebViewClient запускает намерение android.intent.action.VIEW для URI, если он не включен в белый список. Который запускает внешний браузер. (Есть также несколько встроенных схем, которые запускают намерения, например mailto: geo: sms: которые запускают другие соответствующие события)
Теги:
cordova

1 ответ

1

Что я нашел до сих пор:

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню