1.經過反射(各版本API,不同),以下爲4.2.2源碼的方式:經過android.webkit.WebViewClassic的fromWebView拿到webview對應的WebViewClassic實例1,經過該實例1的getWebViewCore方法拿到對應的WebViewCore實例2,經過實例2拿到 mBrowserFrame實例3,經過實例3的stringByEvaluatingJavaScriptFromString方法拿到js的屬性或方法返回值。 android
2.經過setJavascriptInterface方式,暴漏webview中的對象到JS中(4.2以前android有系統漏洞問題),該對象不斷的向webview推送JS的方法的返回值或屬性值。 web
3.webview定義事先好捕獲URL的格式;JS在執行完方法後經過發起僞HTTP連接(並非真正HTTP,而是爲了webview的onLoadResource方法可以捕獲);webview在onLoadResource中去捕獲這種僞HTTP,根據事先定義好的URL格式,去得到已定義好的JS方法的返回值或屬性值。 lua