Как открыть некоторые ссылки в браузере Android по умолчанию вместо WebView - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть Android приложение WebView. Есть несколько ссылок

  • ссылка 1 - myDomain.com/site-1
  • ссылка 2 - myDomain.com/site-2
  • ссылка 3 - myDomain. com / site-3

Я хочу, чтобы при нажатии на ссылку 2 содержимое открывалось в браузере android по умолчанию, а не в WebView.

Я пробовал с shouldOverrideUrlLoading() но это работает только с внешними ссылками, я имею в виду ссылки на другие домены. Точка останова здесь, а не событие, вызванное нажатием на «ссылку 2».

Обновление: как я вижу, моя точка останова не срабатывает из-за того, что не может обнаружить изменение URL на javascript, которое не приводит к веб-странице перезагрузите.

ОБНОВЛЕНИЕ 2 Наконец-то с ним сработало - doUpdateVisitedHistory() Этот метод срабатывает, у меня есть логин c и здесь открывается мой браузер. Моя ссылка теперь открывается в браузере по умолчанию для Android. Последняя проблема заключается в том, что он открывается в браузере И в приложении.

Я не вижу способа предотвратить загрузку этого URL в моем веб-просмотре

Решено Puu, проблема была в том, что эмулятор запускает это не так, как на реальном устройстве.

public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) 

Параметр "url", запущенный на эмуляторе, - это новый URL-адрес, по которому щелкают (myDomain.com/site-2) ). Так что я могу справиться с этим если-еще. Но на реальном устройстве это все еще базовый URL (myDomain.co). Для реального устройства мне нужно использовать: String urlLoaded = view.getUrl(); и использовать urlLoaded для ifElse вместо параметра "url".

...