解读:
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对象注意事项