Intereting Posts
Как предоставить / dev / bus / usb разрешения для приложений libusb android? Phonegap добавляет элементы в лоток уведомлений Android: как программно открыть мягкую клавиатуру в режиме просмотра Emoji Android-подборщик изображений для локальных файлов Как получить путь к ADB в build.gradle Студия Android – эмулятор укладывается за пределы экрана Почему я могу ввести отключенный EditText? Получить ссылку на значок значка навигации панели инструментов ListView setOnItemClickListener не работает, добавив кнопку Загрузка Base64 с Android / Java на RoR Carrierwave Получить фотографии контактов, которые синхронизируются с facebook для Android Метод weakreference get (), насколько он безопасен? (Android, asynctask) Android getLine1Number () возвращает пустую строку Словарь по умолчанию отсутствует в AutoCompleteTextView / MultiAutoCompleteTextView Могу ли я получить некоторую эффективность, объявив соответствующих участников «статическими» в действии Android

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, но я думал, что это поможет кому-то еще, кто наткнулся на эту проблему.