让WKWebview支持NSURLProtocol可参考: NSURLProtocol对WKWebView的处理
所以这里应该很清楚,NSHTTPCookieStorage已经用不到了,但是你可以把他作为存储cookie到本地的工具使用。我自己的项目里面已经全部删除了它的使用
以我项目为例,这种方法设置的cookie,不能被js读取到,在浏览器调试中也不能看到。所以通过js开发的此方式不可用,但是可以被PHP等动态语言读取,由于我的项目都是用js开发的,故不用此方式,也不做兼容。这里就不做过多的使用介绍。
这种方式不好的地方就是,只能在初始化的时候注入,如果cookie的值发生变化,就需要重新初始化,就变得比较low。所以这种方式的cookie尽量保证他的值是不变的,比如设备号、设备类型、来源等信息。使用方法如下图:
使用起来就比较方便了。如图:
最后可能还会遇到问题,前端获取不到,但是我的cookie确实设置成功了,在safari调试器中可以明确的看到cookie确实设置成功了。我猜想可能是由于cookie设置成功的时机在前端使用cookie值的时机之后造成,也无法解决。
前几天看到一篇文章: 苹果拒绝了16个Web API
说了一堆,总结一下就是苹果觉得cookie不安全。所以cookie中尽量设置一些无关紧要的参数,或者就尽量不去使用。
毕竟cookie这个坑,踩起来难受!!!
个人不推荐使用Cookie!
这都是避免出现Android和iOS出现两种不同的传值方式,测试效果上看性能无优劣,只是一种传值方式而已!!!,且看使用起来是否顺手。
一、可以拼接在地址后面,有加密需要的加密
二、通过JSBridge传值,我自己使用的 WebViewJavascriptBridge, 这种方式需要在页面加载完成之后才会起效。
三、将要传的值添加到NSMutableURLRequest的header内,如图:
ios 中有的请求需要带cookie, 验证登陆等.
ios默认是会把url 的cookie保存到本地, 但不是实时保存的, 会有延迟, 一般理解为在系统空闲时去保存 . 所以为了实时给url添加cookie, 我们最好将请求url 后获取到的cookie 保存到本地, 用NSUserDefault即可
在设置Cookie之前,先让我们了解一下通用Cookie格式,多个Cookie的格式通常为:cookie1=value1cookie2=value2cookie3=value3
这里特别要注意,多个cookie之间用分号+空格分隔开,不是&也不是单纯的空格。我所了解到的iOS设置Cookie的方法有两种,分别如下。
方法一:
方法二:
注意: 一定要把cookie设置到request.allHTTPHeaderFields中才会生效.
网上好多的demo都是这样设置cookie的 --- [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie] 亲测不能用
update 于当天下午
现在是这样, 要在每一次请求的时候都要带cookie, 如果要按上面那种写法之有在第一次请求的时候带cookie, 其他请求都带不上了,
解决方法 :
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)