javascript - Bagaimana untuk memantau perubahan cincang url dalam paparan web Android
ringa_lee
ringa_lee 2017-06-12 09:25:05
0
1
1897

Adegan

Muat tapak web SPA (Aplikasi Halaman Tunggal) dalam paparan web Android

Proses

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

Contoh

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

Soalan

Adakah terdapat sebarang cara untuk memantau perubahan dalam nilai cincang?

ringa_lee
ringa_lee

ringa_lee

membalas semua(1)
学习ing

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(); };");
    }
});
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan