recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment surveiller les changements de hachage d'URL dans la vue Web Android

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_leeringa_lee2716 Il y a quelques jours1850

répondre à tous(1)je répondrai

  • 学习ing

    学习ing2017-06-12 09:27:05

    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(); };");
        }
    });
    

    répondre
    0
  • Annulerrépondre