我需要检测 Android WebView 中的 URL 哈希更改,但找不到任何方法。 shouldOverrideUrlLoading()
在初始页面加载时触发,但在页面加载后不会触发任何后续哈希更改。
这甚至可以通过 Android WebView 实现吗?
我需要检测 Android WebView 中的 URL 哈希更改,但找不到任何方法。 shouldOverrideUrlLoading()
在初始页面加载时触发,但在页面加载后不会触发任何后续哈希更改。
这甚至可以通过 Android WebView 实现吗?
有可能的。
您必须像这样声明一个 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(); };");
}
});
我希望它有所帮助。我已经对其进行了测试,并且可以正常工作。