4.22注入jsにaddjavascriptinterfaceを追加する必要がある

784 ワード

プロジェクトの必要性のためandroidのwebviewを再利用し、webviewがロードするページはhtml 5のページである.
Webviewをクリックするコントロールのインタラクションが必要なので、androidアプリケーションにjsオブジェクトを注入する必要があります.
WebviewでaddJavaScriptInterface(Object o,String name)メソッドはオブジェクトの注入を実現する.
次に、public void test(String str)などのオブジェクトに必要な方法を定義します.
最も重要なのはwebviewがjsをサポートすることを設定することです.webview.getSetting().setJavaScriptEnable(true);
以上の手順により、jsObjectのようなandroid中のクラスをjsファイルに名前を注入することによって呼び出すことができるはずである.test(param);
以前にプロジェクトで使用したandroid 2.37 sdk木に問題がありますが、現在使用されているandroid 4.22 sdkは、注入されたオブジェクトにアクセスできない方法である......
4.22に追加された新しいルールを長い間調べていましたが、jsを使用してandroidクラスを呼び出す方法には、@JavascriptInterfaceという注釈を付けなければなりません. :http://stackoverflow.com/questions/14031635/android-4-2-1-webview-and-javascript-interface-breaks