gpt4 book ai didi

ios - UIWebView 未检测到网页 cookie

转载 作者:可可西里 更新时间:2023-11-01 04:00:17 24 4
gpt4 key购买 nike

我正在开发使用 UIWebView 加载网页的 iOS 应用程序

网页设置了四个cookie:

  1. 两个用于 Google Analytics,_ga 和 _gat
  2. 一个用于我的 Web 应用程序的唯一访问者计数器
  3. 一个用于我的网页以检测用户是否投票。
    1. 如果此 cookie 可用,则显示投票结果。

在 Firefox 的 Storage Inspector 中,我按预期看到了所有 cookie,请参见屏幕截图:

enter image description here

但是,在 iOS 中,我从 webViewDidFinishLoad 中打印了 NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies 并且四个预期的 cookie 中只有两个,iOS 用户也可以投票因为未检测到 cookie(或未存储在 iOS 设备中),他们想要的次数:

if let cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies {
for c in cookies {
print("*******************")
print("name: \(c.name)")
print("domain: \(c.domain)")
print("value: \(c.value)")
print("path: \(c.path)")
print("expiresDate: \(c.expiresDate)")
}
}

enter image description here

为什么我的 iOS 应用程序检测不到我的自定义 cookie 而只检测到我的 Google Analytics cookie?

注意 1:我还将此代码添加到我的应用程序中:

func applicationDidBecomeActive(application: UIApplication) {
NSHTTPCookieStorage.sharedHTTPCookieStorage().cookieAcceptPolicy = NSHTTPCookieAcceptPolicy.Always
}

注意 2:我的后端是 SharePoint 网络应用程序

最佳答案

一些想法:

设备的 Safari“阻止 Cookie”设置会覆盖对 cookieAcceptPolicy 的任何更改。设备上此设置的默认策略是“允许我访问的网站”,这取决于您的 iOS 设备的版本,允许第三方 cookie。使用 iOS 9.3.x 进行的测试表明,第三方 cookie 会以默认设置保留在 UIWebView 中,但不会保留“仅允许来自当前网站”或“始终阻止”设置。

检查设备是否使用不同的 Safari cookie 设置保留您的 cookie。

此外,您的 cookie 是否设置了过期日期?我发现未设置过期日期的 cookie 在 UIWebView 中被视为 session cookie,它仅在接收它的 Web View 的生命周期内持续存在。

关于ios - UIWebView 未检测到网页 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36567654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com