У меня есть 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".