4.2以上版本的sdk使用webview js和java代码交互必须加注解才能生效

                  4.2以上版本的sdk使用webview的js和java代码交互必须加注解才能生效

  最近做一个阅读器的项目,项目大概就做成一个这样的功能,附图

  

  其中精选,现代言情,现代都市切换下面对应的内容是一个WebView,然而做的时候总是js和java代码交互不了,这个问题一直困惑了我两天多,弄得头都炸了(因为以前也做过webview之类的东西),后来找了4.2版本以上android的文档,发现了下面这句话:

Caution: If you've set your targetSdkVersion to 17 or higher, you must add the @JavascriptInterfaceannotation to any method that you want available to your JavaScript (the method must also be public). If you do not provide the annotation, the method is not accessible by your web page when running on Android 4.2 or higher.

我用的sdk版本是4.2.2的,所以需要加上这句注解才能生效   @JavascriptInterface        


但是我有一个疑问,因为我的webview是放在fragment中的加上了这句注解生效了,

但是当我把webview放到activity中的时候不加这句注解js和java代码也是能相通的,

因为当时我以为这是fragment里面加webview js和java代码不能通,以为这是fragment的一个bug,

因为我查看到有一个fragmentWebView的类,


后来我用同样的sdk版本,同样的代码不加这句@JavascriptInterface 注解 放在activity中

js和java代码能通


反正我没想明白!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值