8

Android WebView で URL ハッシュの変更を検出する必要がありますが、その方法が見つかりません。 shouldOverrideUrlLoading()最初のページの読み込み時に発生しますが、ページが読み込まれると、その後のハッシュの変更に対しては発生しません。

これは Android WebView でも可能ですか?

4

1 に答える 1

10

可能です。

次のように Javascript インターフェイスを宣言する必要があります。

private class MyJSI {
         public void doStuff()
         {
         }
}

そして、次のように WebView を Javascript インターフェイスにリンクします。

webView.addJavascriptInterface(new MyJSI(), "myjsi");

次に、ページが読み込まれるときに JavaScript コードを記述して、ハッシュの変更時に doStuff 関数を呼び出す必要があります。

webview.setWebViewClient(new WebViewClient() {  

         public void onPageFinished(WebView view, String url)  
         {
                 view.loadUrl("javascript:window.onhashchange = function() { myjsi.doStuff(); };");
         }
});

お役に立てば幸いです。私はそれをテストしました、そしてそれは動作します。

于 2013-08-26T13:39:07.250 に答える