前几天项目中遇到了整个问题,在android2.2上跑,ok,木有问题。拿到4.4上测试,在webview中没有反应。
这是因为在android4.2.X之后google公司对webview进行了一次漏洞修补。只允许js调用java中用@JavascriptInterface注解了的方法。看网上的解决方法,发现说的不甚明了,这里我还是把这个解决终极总结给写出来吧,后来人少走弯路吧。
相信猿友们已经搜索过了很多这方面的解决办法:
正如上所说,需要在你js调用的方法前加上@JavascriptInterface 的注解。但是有部分人的代码会报错说找不到类,需要创建类。然后大概会像我一样去搜这个注解的类支持库。呵呵呵。。。开始走弯路了。
其实在android4.2中已然有了这个类。我们只需要将properties中的编译sdk换成4.2的17即可。如果你电脑上没有装17的sdk,恩,这个问题么。自己解决!
貌似没有代码就没有说服力哇,象征性加入一段代码(然并卵):
class Ccl{ Context context; @SuppressLint("JavascriptInterface") public Ccl(Context context){ this.context = context; } @JavascriptInterface public void showMap(String jingdu,String weidu){ judgeInstall(jingdu,weidu); } }
javascript:ccl.showMap('\"+jingdu+\"','\"+weidu+\"');\"
ok!
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-13 17:13:59