Intereting Posts
Mercurial .hgignore для проектов Android Studio Почему моя относительная компоновка занимает всю ширину экрана Как вызвать функцию Iphone / Android от Javascript? Точная процедура добавления «jfeinstein10 / SlidingMenu» в проект андроида Android Wifi прямого множественного соединения ad-hoc Не удается запустить проект Eclipse – не удается найти базу данных API Как читать и редактировать события календаря Android с помощью нового Android 4.0 Ice Cream Sandwich API? Передача объекта GoogleApiClient из одного действия в другое Рисование круга в андроиде Как показать свое текущее местоположение в Google Map? Получить координаты сенсорного события на Android Проблема совместного использования схемы: иногда я получаю сообщение «Невозможно загрузить изображение» Активность мастера полноэкранного действия. Как отключить отображение панели действий при взаимодействии с устройством? Вызывается java.lang.NullPointerException: пытается вызвать виртуальный метод 'int android.graphics.Bitmap.getWidth ()' в ссылке на нулевой объект Трансляция действия по изменению разрешения в android M

ShouldOverrideUrlLoading не работает / улавливает ссылки при загрузке страницы

Я использую WebViewClient.shouldOverrideUrlLoading, чтобы поймать любые клики по ссылкам в WebView. Это работает примерно в 95% случаев, но иногда его просто не называют.

Я заметил это в этих трех обстоятельствах:

  1. Когда ссылка указывает на страницу, они уже включены. Это не очень большая сделка, и об этом сообщается .
  2. Пока страница по-прежнему загружается, если пользователь нажимает ссылку, она редко ее ловит. Он просто откроет ссылку, никогда не shouldOverrideUrlLoading .
  3. Случайно. Экспериментируя с этим за последние пару месяцев, я заметил, что иногда это просто не поймает. Это редко, но это происходит.

Теперь мой вопрос в основном заключается в том, как исправить проблему 2, так как другие менее важны. Однако, если кто-то решил 1 или 3, я хотел бы услышать об этом.

Кроме того, я должен упомянуть, что я попытался использовать разные значения return в shouldOverrideUrlLoading и я заметил, что всегда возвращающее истину, кажется, имеет лучший результат, но проблемы выше все еще происходят.

Solutions Collecting From Web of "ShouldOverrideUrlLoading не работает / улавливает ссылки при загрузке страницы"

Если HTML является вашим собственным, вы можете заменить все традиционные ссылки на вызовы на свой собственный объект Java, вставляемый в WebView через addJavascriptInterface() . Тогда вы больше не будете полагаться на shouldOverrideUrlLoading() .

В противном случае, возможно, попытайтесь запретить пользователю взаимодействовать со страницей до onPageFinished() .

Я не сталкивался с этой проблемой, но я также не использовал WebView с произвольным контентом.

У меня была аналогичная проблема при попытке изменить веб-страницу с помощью js на странице, которая изменяет window.location . Оказывается, что изменение схемы / протокола url делает захват webview на shouldOverrideUrlLoading . Я знаю, это не поможет вам, так как вы не владеете HTML, но я думал, что это поможет кому-то еще, кто наткнулся на эту проблему.