android webview ios uiwebview和wkwebview的交互以及本地缓存
android webview
js調用java的方式
1.java通過注解@JavascriptInterface導出方法, js通過window.別名.方法名調用方法
2.攔截url方式,通過shouldOverrideUrlLoading實現
java調用js的方式
1.webview.loadUrl,?可以通過回調實現獲取返回值
2.webview.evaluateJavascript 4.4及以上版本才能使用
3.通過反射實現stringByEvaluatingJavaScriptFromString方法
離線緩存
通過shouldInterceptRequest來實現
IOS UIWebview
js調用objc
1.攔截url方式,webview:shouldStartLoadWithRequest:navigationType
2.通過JavascriptCore實現
objc調用js
1.stringByEvaluatingJavaScriptFromString
2.JavaScriptCore
離線緩存
通過NSURLProtocol攔截請求
https://github.com/marcuswestin/WebViewProxy
https://developer.apple.com/library/content/samplecode/CustomHTTPProtocol/Introduction/Intro.html
http://draveness.me/intercept/
IOS WKWebview
js調用objc
1.攔截url方式,通過webview:decidePolicyForNavigationAction:decisionHandler實現
2.MessageHandler
objc調用js
1.evaluateJavaScript:completionHandler
離線緩存
通過NSURLProtocol攔截請求
https://github.com/yeatse/NSURLProtocol-WebKitSupport
其它
jsbridge和webviewjavascriptbridge本質上就是攔截url方式來實現的。
總結
以上是生活随笔為你收集整理的android webview ios uiwebview和wkwebview的交互以及本地缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国区块链相关组织
- 下一篇: 在ubuntu 14.04搭建React