2013-03-02 9 views

答えて

7

可能です。

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

をそして、このようなJavascriptのインターフェイスを使用しての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(); };"); 
     } 
}); 

私はそれが役に立ちそうです。私はそれを試して、それは動作します。

+0

onPageFinishedは、URLフラグメント(#)の変更を検出しました。 URLの変更後のみ。しかし、私たちはshouldOverrideUrlLoadingでできる限りそのような変更をオーバーライドすることができますか? –

関連する問題