javascript - Comment surveiller les changements de hachage d'URL dans la vue Web Android
ringa_lee
ringa_lee 2017-06-12 09:25:05
0
1
1846

Scène

Charger un site Web SPA (Single Page Application) dans la vue Web d'Android

Processus

J'utilise la méthode Shouldoverrideurl pour surveiller l'URL de Webview et effectuer un prétraitement sur l'URL

Cependant, la plupart des changements dans SPA sont des changements de valeur de hachage, cette méthode ne peut donc pas détecter les changements

Exemple

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

Question

Existe-t-il un moyen de surveiller les modifications des valeurs de hachage ?

ringa_lee
ringa_lee

ringa_lee

répondre à tous(1)
学习ing

Ne peut être ajouté que via HTML5 window.onhashchange() API。shouldoverrideurl Il ne doit pas être surveillé.

Si vous ne souhaitez pas modifier le code js, vous pouvez l'injecter en java :

Définissez une classe qui gère js :

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

Injecter dans la vue Web :

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

Écoutez l'événement onhashchange :

webview.setWebViewClient(new WebViewClient() {  

    public void onPageFinished(WebView view, String url) {
        view.loadUrl("javascript:window.onhashchange = function() { myjsi.doStuff(); };");
    }
});
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal