关于Android4.2后WebView的js方法需要加@JavascriptInterface

 

解读:

 targetSdkVersion>=17时,需要加上@JavascriptInterface,否则报错Uncaught TypeError: Object [object Object] ...。该标记为4.2之后引入,所以target=android-17或更高以便引入高版本android.jar


1、如果仅target低于17则出现矛盾:目标版本需要引入JavascriptInterface注解  然而低版本android.jar中又没有该类!js无法运行 仍然报错Uncaught TypeError: Object [object Object] has no method...
 

2、反之,如果仅targetSdkVersion低于17,那么目标版本不用加@JavascriptInterface,当然加上也行,因为当target>=17时的android.jar中有这个类
 

3、如果均低于17,不用加!当然了,没有这个类,想加也加不了
 

所以:targetSdkVersion<>17是决定因素

targetSdkVersion<17时不用加。此时如果target>=17,android.jar包中有这个类,随便加不加。如果target<17,加不了也不用加。

targetSdkVersion>=17时必须加。此时如果target>=17,android.jar包中有这个类,可以加上。如果target<17,加不了,js无法运行。

 

参考链接:WebView注入Java对象注意事项

转载于:https://www.cnblogs.com/gagarinwjj/p/3388701.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值