私はAndroid OS Jelly Bean 4.2の深刻なバグに直面しています。ここで私のプログラムでは、JavaScriptを使用してWebページの高さを取得しています.Android 2.2から4.1まで完全に機能していますが、Android 4.2で同じコードを使用しようとするとJavaScript インターフェイスが機能していません。
この問題を解決するにはどうすればよいですか?
私はAndroid OS Jelly Bean 4.2の深刻なバグに直面しています。ここで私のプログラムでは、JavaScriptを使用してWebページの高さを取得しています.Android 2.2から4.1まで完全に機能していますが、Android 4.2で同じコードを使用しようとするとJavaScript インターフェイスが機能していません。
この問題を解決するにはどうすればよいですか?
Android 4.2 のドキュメントから:
注意: targetSdkVersion を 17 以上に設定した場合は、Web ページ コードで使用できるようにするメソッドに @JavascriptInterface アノテーションを追加する必要があります (メソッドもパブリックである必要があります)。アノテーションを指定しないと、Android 4.2 以降で実行しているときに Web ページからメソッドにアクセスできなくなります。
ドキュメントによると:Android doc Android 4.2以降、メソッドに@JavascriptInterfaceで注釈を付ける必要があります(メソッドはパブリックである必要があります)。
ターゲット API 17+ で動作する Proguard 構成:
-keep @interface android.webkit.JavascriptInterface
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}