我在我的项目中使用了这里描述的一段代码
http://lexandera.com/2009/01/extracting-html-from-a-webview/
我创建.apk文件,将其安装在我的设备上,它正常工作.如果我尝试使用proguard的混淆项目失败,则不会到达MyJavaScriptInterface的方法showHTML(String html).
关于那个我的proguard配置
-keep public class com.mypackage.MyClass.MyJavaScriptInterface
-keep public class * implements com.mypackage.MyClass.MyJavaScriptInterface
-keepclassmembers class * implements com.mypackage.MyClass.MyJavaScriptInterface {
<methods>;
}
Run Code Online (Sandbox Code Playgroud)
根据这个答案Android proguard Javascript Interface问题.
解决了.
正如Eric建议的那样,我改变了这样的Proguard配置文件:
-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)
现在我的项目完美无缺.
对于API 17+,您还需要保留@JavascriptInterface注释:
-keepattributes JavascriptInterface
Run Code Online (Sandbox Code Playgroud)
http://developer.android.com/reference/android/webkit/JavascriptInterface.html