在iOS开发中经常遇到客户端与前端进行交互处理,JS调用OC或者OC调用JS都需要提前商量好,本文就从这两个角度讨论实现方式。
1、JS调用OC函数;
客户端加载网页出来后,这个时候我们点击网页上的标签或者按钮的时候就会响应这个函数,
- (void)webView:(WKWebView*)webView decidePolicyForNavigationAction:(WKNavigationAction*)navigationAction decisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler
我们可以获取scheme,根据scheme进行判断来做不同的事件处理;
然后,获取host,这个host对应的就是前端传过来的函数名字,
那我我们怎么提取前端传过来的参数呢,我们可以这么做,获取url里面的query然后通过‘&’和‘=’进行分割,分割出来的就是参数啦,获取到参数后你想干什么呢?自己想吧,我是这么干的:
哈哈,到这里就把JS调用OC函数的过程全部实现了,下面我们再来讨论OC调用JS函数;
2、OC调用JS函数
我们怎么去传给前端一些需要的数据呢?那么当然也是要和前端提前商量好的,需要定义个函数名字,然后我们通过这个方法
- (void)webView:(WKWebView*)webView decidePolicyForNavigationAction:(WKNavigationAction*)navigationAction decisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler
获取到点击事件,然后在执行OC自带的一个与js交互的方法:
看到了吗?红圈中的就是函数名字和参数,调用了这个函数后,我们就把参数给前端了,前端接收到参数后去做什么呢?你自己想吧,哈哈。