javascript – So überwachen Sie URL-Hash-Änderungen in der Android-Webansicht
ringa_lee
ringa_lee 2017-06-12 09:25:05
0
1
1858

Szene

Laden Sie eine SPA-Website (Single Page Application) in der Android-Webansicht

Prozess

Ich verwende die Methode Shouldoverrideurl, um die URL von Webview zu überwachen und eine Vorverarbeitung der URL durchzuführen

Allerdings handelt es sich bei den meisten Änderungen in SPA um Hashwertänderungen, sodass diese Methode keine Änderungen erkennen kann

Beispiel

Von a.html#/home 跳转到 a.html#/other

Frage

Gibt es eine Möglichkeit, Änderungen in Hash-Werten zu überwachen?

ringa_lee
ringa_lee

ringa_lee

Antworte allen(1)
学习ing

只能通过 HTML5 新增加的 window.onhashchange() API。shouldoverrideurl 应该监听不到吧。

如果你不想修改 js 代码,可以在 java 中注入:

定义一个处理 js 的类:

private class MyJSI {
    public void doStuff() {
        // 你的逻辑
    }
}

注入到 webview 中:

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

监听 onhashchange 事件:

webview.setWebViewClient(new WebViewClient() {  

    public void onPageFinished(WebView view, String url) {
        view.loadUrl("javascript:window.onhashchange = function() { myjsi.doStuff(); };");
    }
});
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage