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