Rumah > Soal Jawab > teks badan
Muat tapak web SPA (Aplikasi Halaman Tunggal) dalam paparan web Android
Saya menggunakan kaedah shouldoverrideurl untuk memantau URL Webview dan melakukan beberapa prapemprosesan pada URL
Namun, kebanyakan perubahan dalam SPA adalah perubahan nilai hash, jadi kaedah ini tidak dapat mengesan perubahan
Dari a.html#/home
跳转到 a.html#/other
Adakah terdapat sebarang cara untuk memantau perubahan dalam nilai cincang?
学习ing2017-06-12 09:27:05
Hanya boleh ditambah melalui HTML5 window.onhashchange()
API。shouldoverrideurl
Ia tidak sepatutnya dipantau.
Jika anda tidak mahu mengubah suai kod js, anda boleh menyuntiknya dalam java:
Tentukan kelas yang mengendalikan js:
private class MyJSI {
public void doStuff() {
// 你的逻辑
}
}
Suntikan ke dalam paparan web:
webView.addJavascriptInterface(new MyJSI(), "myjsi");
Dengar acara onhashchange:
webview.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:window.onhashchange = function() { myjsi.doStuff(); };");
}
});