WKWebview、JS交互数据传值、Cookies的注入与清除


https://blog.csdn.net/weixin_33919950/article/details/86805042

通过window变量传值
通过第二步我们已经能正确的让JS拿到我们iOS里面的信息但是我们发现不能及时地拿到返回值会有很大的限制比如有这种情况JS需要直接拿到返回值进行其他操作
//JS代码
var info = getUserInfoString()
if info....
这就GG了因为JS调用这个方法的时候我们没办法直接给它返回
我们再次曲线救国
我们可以在调用这个方法之前比如网页加载完毕网页收到相应等情况下提前准备好数据然后写入到window里把infoString写入window的方法

let infoStr = getUserInfoJsonStr()
let jsStr =  "window.GLOBAL_USERINFO=\(infoStr)"
webView.evaluateJavaScript(jsStr, completionHandler: nil)
执行完毕后window就有了一个GLOBAL_USERINFO变量随时可取不过网页开发者不必知道这个东西无需为了iOS而特殊处理仍让他调用getUserInfoString方法即可
然后我们改写这个方法让它能直接返回infoStr

getUserInfoString: function () {
window.webkit.messageHandlers.OOFJS.postMessage({
fun: 'getUserInfoString',
arg: {
}
})
return window.GLOBAL_USERINFO;
},
这个方法是直接返回了我们提前写入的变量window.GLOBAL_USERINFO
--------------------- 
作者weixin_33919950 
来源CSDN 
原文https://blog.csdn.net/weixin_33919950/article/details/86805042 
版权声明本文为博主原创文章转载请附上博文链接

 
 


Loading Disqus comments...
Table of Contents