解讀:
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對象注意事項