美文网首页互联网科技iOS面试点
JS调用OC方法(WKWebView)iOS

JS调用OC方法(WKWebView)iOS

作者: c597dd01fa1f | 来源:发表于2018-09-22 00:51 被阅读1次

     原生加载控件使用的是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

    喜欢我的收藏、点赞、点关注,谢谢🙏

    相关文章

      网友评论

        本文标题:JS调用OC方法(WKWebView)iOS

        本文链接:https://www.haomeiwen.com/subject/ubttoftx.html