在应用中,有很多内容是利用iOS原生的webView承载的H5去显示的。所以,不可避免的会利用到OC与JS的交互。由于之前没有接触到这部分的内容,一直对这个交互的使用场景很模糊,通过近期的需求开发理解了一下这部分的交互使用。以下是我的见解与大家分享一下,也可以多多指教,共同学习:
一.主要使用场景:
1.获取绑定JS方法的返回值;
2.在特定操作/时刻触发JS方法;
3.将JS调用OC的结果返回给JS;
二.OC调用JS
在大部分交互中,是利用OC调用JS,也会为客户端的开发人员节约很多成本。目前在iOS8之后webView主要使用的是WKWebView,它相比于UIWebView,具有加载速度更快,占用内存少,支持了更多的HTML5特性的等特点。
我们可以利用- evaluateJavaScript:completionHandler:方法,调用JS的方法获取到count,在回调中得到返回值。
也可以利用该方法传值给JS
三.JS调用OC
相当于提前埋好点,等待注入的JS方法返回结果进行相应的操作。通过WKScriptMessageHandler的代理方法接收到相应的WKScriptMessage并进行处理。
1.在创建配置webView的时候注入JS
注入JS.png
2.利用WKScriptMessageHandler的代理方法接收WKScriptMessage进行相应操作
JS调OC.png
总结:无论前端与客户端的交互是谁调用谁,其实都是可以的,看业务的需求、交互而定。所以只需认真分析交互的具体内容是为了实现什么效果,如何配合即可。
网友评论