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中图片显示尺寸不正常或者需要调整

iOS - 在 UIWebView 中嵌入 Facebook 视频

uiwebview视频无法在IOS 12.2中播放

如何在 UIWebView 中访问公共 Facebook 个人资料

iOS uiwebview 在加载整个 html 文件之前触发了 finishLoad 事件

在iOS 8中如何在UIWebView Player中接收全屏模式的通知?