Rav*_*avi 21 javascript css android webview
我正面临着一个严重的android OS Jelly Bean 4.2的错误,在我的程序中,我使用JavaScript来获取网页的高度,它完全适用于Android 2.2到4.1但是当我尝试在android 4.2中使用相同的代码时JavaScript界面无法正常工作.
我该如何解决这个问题?
jlo*_*son 46
从Android 4.2文档:
警告:如果已将targetSdkVersion设置为17或更高,则必须将@JavascriptInterface注释添加到您希望网页代码可用的任何方法(该方法也必须是公共的).如果您未提供注释,则在Android 4.2或更高版本上运行时,您的网页将无法访问该方法.
Fra*_*yen 18
而且,如果您使用的是Proguard,请记住添加它
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep public class com.mypackage.MyClass$MyJavaScriptInterface
-keep public class * implements com.mypackage.MyClass$MyJavaScriptInterface
-keepclassmembers class com.mypackage.MyClass$MyJavaScriptInterface {
<methods>;
}
Run Code Online (Sandbox Code Playgroud)
如果仍然不行,请添加此项
-keepattributes *Annotation*
Run Code Online (Sandbox Code Playgroud)
注意:您的MyJavaScriptInterface必须是Public类
参考号:Android Proguard Javascript接口失败
Proguard配置适用于目标API 17+:
-keep @interface android.webkit.JavascriptInterface
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16977 次 |
| 最近记录: |