Maison > Questions et réponses > le corps du texte
Charger un site Web SPA (Single Page Application) dans la vue Web d'Android
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
De a.html#/home
跳转到 a.html#/other
Existe-t-il un moyen de surveiller les modifications des valeurs de hachage ?
学习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(); };");
}
});