<font size=5 color='#333333'> 以下主要讲WKWebView中OC与JS交互,UIWebView这里稍微简单介绍 </font>
<font size=3>这里重点关于wkwebview中JS调用OC<font color='#20B2AA'>返回值的问题</font>,普通的OC与JS交互网上资料一大堆</font>
<font size=4 color='#666666'>稍微简单介绍下:</font>
<font size=3 color='#666666'>下面是<font color=red>错误</font>调用:</font>
<font size=3 color='#999999'>JavaScript 在浏览器环境中发出URL请求, Objective-C 截获请求以获取相关请求的思路 在Objective-C 中在实现UIWebViewDelegate 时截获请求:</font>
<font size=3>以上前三种方式<font size=5 color=red>缺点</font></font>
windowwebkitmessageHandlers<方法名>postMessage(<数据>)、URL请求截获、监听Cookie的三种方式,整个过程是异步,不能同步
在JavaScript中不能直接获取Objective-C处理的返回值,需要Objective-C 调用JavaScript层自己实现的api才能得到返回值
使用callback 比较麻烦,需要在JavaScript 上自己实现
同步调用很可能会出现假死现象!
举个例子,链接服务器获取数据:
如果同步调用,会出现:
1
对服务器发起链接请求
2
线程占用,等待服务器回应,此时其他函数都不回执行(假死)
3
过了n秒,服务器回应
4
将数据进行逻辑运算
5
线程继续
如果异步调用,则:
1
对服务器发起异步请求
2
线程监听服务器返回,等待期间,继续运行其他函数~不受监听影响
3
过了n秒,服务器返回了,线程将返回数据进行逻辑运算
4
线程继续
以上就是关于WKWebView OC与JS交互 同步返回值全部的内容,包括:WKWebView OC与JS交互 同步返回值、不要对JS异步回调函数进行同步调用,为什么、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)