Я использую WebViewClient.shouldOverrideUrlLoading для перехвата любых кликов по ссылкам в WebView. Это работает примерно в 95% случаев, но иногда просто не вызывается.
Я заметил это в следующих трех обстоятельствах:
- Когда ссылка указывает на страницу, на которой они уже находятся. Это не так уж важно, и для него сообщается ошибка. .
- Пока страница все еще загружается, если пользователь нажимает на ссылку, он редко ее ловит. Он просто откроет ссылку, даже не вызывая
shouldOverrideUrlLoading
. - Случайно. Экспериментируя с этим за последние пару месяцев, я заметил, что иногда он просто не улавливает его. Это редко, но это происходит.
Теперь мой вопрос в основном заключается в том, как решить проблему 2, поскольку остальные менее важны. Однако, если кто-то решил 1 или 3, я хотел бы услышать об этом.
Кроме того, я должен упомянуть, что я пробовал разные возвращаемые значения в shouldOverrideUrlLoading
и заметил, что всегда возвращаемое значение true дает лучший результат, но проблемы, описанные выше, все еще случаются.
window.location
. Оказывается, изменение схемы/протокола URL приводит к тому, что веб-просмотр цепляется заshouldOverrideUrlLoading
. - person Grantland Chew   schedule 08.07.2011