Как обнаружить ссылку на другой раздел на той же странице в веб-представлении Android

#android #webview #href

Вопрос:

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

 binding.webview.webViewClient = object : WebViewClient() {
     override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
         println("shouldOverrideUrlLoading: ${request?.url?.toString()}")
         //do whatever and return false if we don't want the link to be launched
         return false
     }
 }
 

но это не работает для ссылок на одну и ту же страницу, например:

 <a href="#tabpanel-size-guide-1">
   Size guide
</a>
 

Я предполагаю, что это связано с тем, что ссылки на ту же страницу не загружают новый URL-адрес, а затем это событие shouldOverrideUrlLoading не запускается.

Итак, мой вопрос: есть ли способ обнаружить переходы пользователей по такого рода ссылкам?

Комментарии:

1. Попробуйте вместо этого использовать shouldInterceptRequest, вы правы насчет shouldOverrideUrlLoading, он не сработает в том же домене.

2. Спасибо @javdromero, к сожалению, я уже пробовал, и это не работает. Он перехватывает звонки, чтобы получить другие ресурсы, такие как favicon.