8

我需要检测 Android WebView 中的 URL 哈希更改,但找不到任何方法。 shouldOverrideUrlLoading()在初始页面加载时触发,但在页面加载后不会触发任何后续哈希更改。

这甚至可以通过 Android WebView 实现吗?

4

1 回答 1

10

有可能的。

您必须像这样声明一个 Javascript 接口:

private class MyJSI {
         public void doStuff()
         {
         }
}

并将您的 webview 与 Javascript 接口链接,如下所示:

webView.addJavascriptInterface(new MyJSI(), "myjsi");

然后,您必须在页面加载时编写一些 javascript 代码,以便在哈希更改时调用函数 doStuff。

webview.setWebViewClient(new WebViewClient() {  

         public void onPageFinished(WebView view, String url)  
         {
                 view.loadUrl("javascript:window.onhashchange = function() { myjsi.doStuff(); };");
         }
});

我希望它有所帮助。我已经对其进行了测试,并且可以正常工作。

于 2013-08-26T13:39:07.250 回答