WKWebView OC与JS交互 同步返回值

WKWebView OC与JS交互 同步返回值,第1张

<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异步回调函数进行同步调用,为什么、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9343678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存