关于安卓webview的addJavascriptInterface在DEBUG之RUN时有效,在签名打包后无效的问题

   项目中用到了webview,在签名打包后,js事件失效,百思不得其解,通过一通google找到解决办法

http://blog.chinaunix.net/uid-15059847-id-3418228.html?1357717662


在android自带的proguard.txt里有这句话

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}


如果你的项目使用了WebView与JS,取消以下的屏蔽,并为你的Js接口指定类名

-keep public class <Package Name>.ActivityName$JSClassname {

public *;

}


配置,发现有些4.2以上的系统照样无法调用js,解决办法

http://my.eoe.cn/blue_rain/archive/3698.html


因为android 4.2以上版本调用js接口需要在方法使用声明@JavascriptInterface,然后混淆时可能会弄丢该声明导致,程序无法调用js

在配置文件上继续加上:

-keep attributes Annotation


-keep attributes JavascriptInterface


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值