H5与iOS混编 之WKWebView与UIWebView用法区别

一、WebViewView比UIWebView的优点

1.WK是iOS8以上推出,目前都是建议用WK

2.WK将UIWebViewDelegate和UIWebView封装成了14个类和3个协议

3.支持更多的H5特性

4.高达60FPS的滚动刷帧率和内置手势

5.性能、稳定性、功能都更好,加载网页占内存更少(比如模拟器加载百度占内存23M,只有UIWebView的1/4左右)

6.允许JS的Nitro加载并使用

二、UIWebView实现交互的方法和原理

UIWebView实现H5与iOS混编主要通过JavaScriptCore这个框架去实现的,具体这个框架的原理请移步之前写的2篇

JavaScriptCore详解https://blog.csdn.net/idealPC/article/details/115075029

交互即跳转、调用方法、传值https://blog.csdn.net/idealPC/article/details/108399793

三、WKWebView实现交互的方法和原理

WKScriptMessageHandler

1.H5调iOS

点击JS的登录按钮,JS将登录成功后的token数据传递给iOS,iOS将收到的数据展示出来

实现原理:
1、JS与iOS约定好方法jsToOcMethod,用作JS在调用iOS时的方法;
2、iOS使用WKUserContentController的-addScriptMessageHandler:name:方法监听name为jsToOcMethod的消息;
3、JS通过window.webkit.messageHandlers.jsToOcMethod.postMessage()的方式对jsToOcMethod方法发送消息;
4、iOS在​​​​​​-userContentController:didReceiveScriptMessage:方法中读取name为jsToOc的消息数据message.body。

WKScriptMessageHandler协议的代理方法:-userContentController:didReceiveScriptMessage: js通过messageHandlers调用方法、传递参数,在这个代理里都可以获取到​

2.iOS调H5

这点是和UIWebView中类似

通过WKWebView的evaluateJavaScript: completionHandler:

 

参考文章地址:https://www.jianshu.com/p/56f0215cb15e

https://blog.csdn.net/sinat_31177681/article/details/90293727

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值