備忘--android 4.2+ WebView的addJavascriptInterface(), js找不到注入的函數

如果您在編寫HTML5應用,需要在JS代碼中訪問Java中的函數,則您會用到WebView的addJavascriptInterface()函數。因爲安全問題,在Android4.2中(如果應用的android:targetSdkVersion數值爲17+)JS只能訪問帶有 @JavascriptInterface註解的Java函數。

之前,任何Public的函數都可以在JS代碼中訪問,而Java對象繼承關係會導致很多Public的函數都可以在JS中訪問,其中一個重要的函數就是  getClass()。然後JS可以通過反射來訪問其他一些內容。通過引入 @JavascriptInterface註解,則在JS中只能訪問 @JavascriptInterface註解的函數。這樣就可以增強安全性。

如果您的應用android:targetSdkVersion數值爲17或者大於17記得添加 @JavascriptInterface 註解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章