ios手机的webview页面,无法共享顶级域名的cookie吗?

我在我们的app和小程序的webview中,打开我们的aaa.test.net页面,然后再打开bbb.test.net页面,在bbb页面写入cookie,并且设置了domain=test.net, 但是回到aaa.test.net页面后,发现cookie并没有写入 (bbb.test.net页面cookie是写入了的)

安卓手机正常, 这是为什么啊

阅读 1.7k
1 个回答

我查了一下资料,自从 iOS 11 和 macOS High Sierra 开始,苹果公司推出了 Intelligent Tracking Prevention (ITP) 技术,这项技术对于跨站点的 Cookie 进行了严格的限制,以增强用户隐私保护。可能你现在的情况,iOS WebView 遵循了 ITP 策略导致了无法共享顶级域名的 Cookie,你可以检查你设置 Cookie 时是否正确设置了 Secure 和 SameSite 属性。在设置 Cookie 时,务必确保设置了 Secure 标志,以及将 SameSite 属性设置为 None。例如:

document.cookie = "key=value; domain=test.net; path=/; Secure; SameSite=None";

如果你已经在 WebView 中使用了 WKWebView,请检查是否启用了 httpCookieStore。在 WKWebView 中,你可以使用 httpCookieStore 方法来管理 Cookie。请确定在你的应用中配置了 WKWebView。

也考虑使用 Universal Links 或者深度链接作为 WebView 之间导航的替代方案。Universal Links 可以更好地维护 Cookie 和 Session 信息,避免 WebView 中出现 Cookie 丢失的问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题