关于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对象注意事项


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM