現在android 4.2以上的版本,反正注入很簡單,js交互函數加上@JavascriptInterface就ok,那低版本呢?其實很簡單別把它想的很難。
說白了總體思路是:在網頁沒加載完前,注入自己寫的js代碼,然後在onJsPrompt() 通過反射,調取本地js交互的函數。那你會問onJsPrompt()在哪?這個函數有什麼作用?
1.首先這個函數是在WebChromeClient()下的一個函數。
2.onJsPrompt(WebView view, String url, String message,
String defaultValue, JsPromptResult result)函數:message爲交互時是h5傳遞過來的數據,那我們反射調用結果返回到H5當中呢?可以通過prompt方法。例如(從其他博客抓的)
那你說代碼怎麼寫自己注入的js代碼呢?這裏有個封裝好的,可以直接用。demo後續給出。