WKWebView 与 js 交互 以及Cookies技术wkwebview

不要烦恼WKWebView的Cookie注入,来这看看吧

2017-03-23  本文已影响4667人  风之谷等风来

上篇文章中提到过初识Session和Cookie,了解了它们的原理和项目中的作用,但是并没有实际用到过,直到前几天,才知道想要搞定Cookie是有多麻烦,还好解决了,现在来这里记录一下,共自己以后查看和研究这方面知识遇到困难的小伙伴们参考!!!

我这边在用到UIWebView的时候,打开一个网页内存直接达到100M,没打开才25M,如果使用WKWebView的话,内存是32M,因为我是给游戏做SDK,游戏本身就很大,如果这个打开网页又突然增加这么多,产品那边可能不让过,想了一下还是要用WK。

但是WK不支持Cookie机制,Google,百度的时候,很多样式,解决方法,但用了之后,总是不适合,一直打不开。其实很多的解决方法思路都是一样的,在WKWebView加载网络请求的时候,用NSMutableURLRequest加上一个Cookie的字符串,在WKWebView创建的时候,也就是初始化的时候,用js注入。我也是用的这个方法,开始还是不行,最后跟后台沟通了一下,做了一点调整就行了,下面上图!

1,我这边有个登录过程,用来上传用户信息,我可以在这个请求完成之后,把Cookie保存下来,大家如果有不用的需求,可以考虑自己的方法。

这里的cookieStr是我登录请求的链接URL,我在请求成功的回调中保存。

图1

2,在WKWebView初始化的时候,js注入

我这里只注入了PHPSESSION对应的值,我这样就可以了;大家可以按照自己保持下来的cookie字符串逐一查看,如果一个不行,就全部注入试试。。。

图2 图3

3,WKWebView加载请求的时候,给请求添加Cookie对应的字符串

这里面就是一个加载请求,注意我在这里注入的时候,没有加;path=/

图4 图5

总结:这样,我在SDK登录之后,就把cookie保存在系统提供了单例里面,在WKWebView加载的时候,利用上述方法,就能实现cookie机制了,不知道大家是什么情况,我这样就解决了,如果有什么问题,希望能一起研究研究!!!

上一篇下一篇

猜你喜欢

热点阅读