iOS UIWebView在HTML中丢失了cookie
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS UIWebView在HTML中丢失了cookie相关的知识,希望对你有一定的参考价值。
我们的项目是购物中心,所以我们需要将session_key设置为UIWebView
这是我设置cookie的代码
```
let url = URL(string: requestUrl)
var requst = URLRequest(url: url!)
requst.addValue("user_session=(YTUserInfo.share.session_key)", forHTTPHeaderField: "Cookie")
webView.loadRequest(requst)
```
当我进入网页时,php可以获取我的cookie
但当我点击“购买”按钮时,我的cookie丢失了?
看这张照片
https://i.stack.imgur.com/XHkgf.jpg
当我点击这个按钮,PHP无法得到我的会话?
所以我该怎么做?
Xcode版本:9.2
手机:iPhone 6,ios 11.2
iOS语言:Swift 4.0
服务语言:PHP
现在,我发现问题,当UIWebView加载新的网页时,javascript无法获取我的cookie!
答案
尝试使用HTTPCookieStorage
存储cookie。代码示例可能有帮助:
let cookie = HTTPCookie(properties: [
.name: "user_session",
.value: YTUserInfo.share.session_key,
.path: "/",
.domain: "your-domain.com"])
HTTPCookieStorage.shared.setCookie(cookie!)
另一答案
我解决了这个问题
func webView(_ webView: UIWebView, shouldStartLoadWith request:
URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
guard request.allHTTPHeaderFields!["Cookie"] != nil else {
let urlStr = request.url!.absoluteString
let url = URL(string:urlStr)
var request = URLRequest(url:url!)
request.addValue("user_session=(YTUserInfo.share.session_key)", forHTTPHeaderField: "Cookie")
webView.loadRequest(request)
return true
}
return true
}
以上是关于iOS UIWebView在HTML中丢失了cookie的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 在 UIWebView 中嵌入 Facebook 视频
如何在 UIWebView 中访问公共 Facebook 个人资料