您的位置:首页 > 移动开发

android webview & ios uiwebview和wkwebview的交互以及本地缓存

2017-02-07 21:48 736 查看
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方式来实现的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: