關於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