公司项目中要求使用HTML来加载页面并做登录和Nginx验证,首先使用的是uiwebview来加载页面,但页面中使用了大量的图形数据的展示,加载过程相当的慢,消耗大量的内存,所以选用WKWebView
登录换成wkwebview后WKWebView页面的cookie不共享,WKWebView 在独立于 app 进程之外的进程中执行网络请求,请求数据不经过主进程,因此,在 WKWebView 上直接使用 NSURLProtocol 无法拦截请求。WKWebView Cookie 问题在于 WKWebView 发起的请求不会自动带上存储于 NSHTTPCookieStorage 容器中的 Cookie。
在网上找了很多方法也没能解决这个问题比如这样获取cookie,但是并没有获取到,最后选用了比较笨的方法,
获取cookie,但是失败先通过uiwebview登录获取cookie
获取cookie存储在本地在WKWebView中使用cookie
通过这种方法就可以多个WK页面共享一个cookie,完成登录,展示页面
Nginx验证
HTML 服务中使用了Nginx验证的方式
期初使用这个方法并没有解决问题
在与大神的请教中找到了这个方法
验证不通过搜索到这个方法,解决
使用不对的地方欢迎大佬们指点,在这里感谢一直给予我帮助的"海恩庭斯公爵",让我写下自己的第一篇博客,以后会多多学习,多多更新,学以致用! 有些方法是在网上搜到的时间久找不到出处啦,表示感谢
网友评论