如果您在編寫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 註解。