cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana untuk memantau perubahan cincang url dalam paparan web Android

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_leeringa_lee2748 hari yang lalu1887

membalas semua(1)saya akan balas

  • 学习ing

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

    balas
    0
  • Batalbalas