Android WebView:是否可以检测到URL哈希变化?

时间:2013-03-02 16:07:53

标签: android

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

Android WebView甚至可以实现这一点吗?

1 个答案:

答案 0 :(得分:7)

有可能。

您必须声明这样的Javascript界面​​:

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

并将您的网页视图与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(); };");
         }
});

我希望它有所帮助。我测试了它,它的确有效。