原生加载控件使用的是WKWebView.
1.点击JS某个方法,并传值给OC原生,原生界面做出响应,使用场景: 点击H5页面某个按钮,进入原生界面实现OC方法
直接看代码:
此处为JS端实现代码给大家粘出来示范一下:
继续往下看:
2.浏览web页面,传递值给JS界面,JS界面通过值判断处理逻辑, 使用场景: 浏览web页面商品,加入购物车,JS通过OC原生传递过去的userId是否为空,来判断当前app是否登录或未登录,跳转原生界面登录,已登录,则直接加入购物车
直接放代码:
之所以给userId重新赋值,是如果userId为null 那么传给JS端,JS说无法判断,如果userId为null,重新定义为空字符串.如果大家有好的建议,可以在下方留言.
同时,这个地方需要注意的是,JS端并不能查看我们给他传递的是什么值,也无法打印,不清楚什么问题? 反正,咱们把值传给他,根据双方商量好的逻辑,给出判断,如果正常,那就行了
此处为jJS端获取传递值代码实现实例给大家粘出来示范一下
依然是这个协议方法,获取注入方法名对象,获取js返回的状态值.
此处为js端实现代码给大家粘出来示范一下
3.在交互中,关于alert (单对话框)函数、confirm(yes/no对话框)函数、prompt(输入型对话框)函数时,实现代理协议 WKUIDelegate ,则系统方法里有三个对应的协议方法.大家可以进入WKUIDelegate 协议类里面查看.下面具体协议方法实现,也给大家写出来,以供参考.
话不多说上代码:
JS端调用confirm函数时,会触发此方法,通过message可以拿到JS端所传的数据,在iOS端显示原生alert得到YES/NO后,通过completionHandler回调给JS端
JS端调用prompt函数时,会触发此方法,要求输入一段文本,在原生输入得到文本内容后,通过completionHandler回调给JS
喜欢我的收藏、点赞、点关注,谢谢🙏
网友评论