我需要检测Android WebView中的URL哈希更改,但无法找到任何方法。 shouldOverrideUrlLoading()
会在初始页面加载时触发,但在页面加载后不会触发任何后续哈希更改。
Android WebView甚至可以实现这一点吗?
答案 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(); };");
}
});
我希望它有所帮助。我测试了它,它的确有效。