我在我们的app和小程序的webview中,打开我们的aaa.test.net页面,然后再打开bbb.test.net页面,在bbb页面写入cookie,并且设置了domain=test.net, 但是回到aaa.test.net页面后,发现cookie并没有写入 (bbb.test.net页面cookie是写入了的)
安卓手机正常, 这是为什么啊
我在我们的app和小程序的webview中,打开我们的aaa.test.net页面,然后再打开bbb.test.net页面,在bbb页面写入cookie,并且设置了domain=test.net, 但是回到aaa.test.net页面后,发现cookie并没有写入 (bbb.test.net页面cookie是写入了的)
安卓手机正常, 这是为什么啊
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
我查了一下资料,自从 iOS 11 和 macOS High Sierra 开始,苹果公司推出了 Intelligent Tracking Prevention (ITP) 技术,这项技术对于跨站点的 Cookie 进行了严格的限制,以增强用户隐私保护。可能你现在的情况,iOS WebView 遵循了 ITP 策略导致了无法共享顶级域名的 Cookie,你可以检查你设置 Cookie 时是否正确设置了 Secure 和 SameSite 属性。在设置 Cookie 时,务必确保设置了 Secure 标志,以及将 SameSite 属性设置为 None。例如:
如果你已经在 WebView 中使用了 WKWebView,请检查是否启用了 httpCookieStore。在 WKWebView 中,你可以使用 httpCookieStore 方法来管理 Cookie。请确定在你的应用中配置了 WKWebView。
也考虑使用 Universal Links 或者深度链接作为 WebView 之间导航的替代方案。Universal Links 可以更好地维护 Cookie 和 Session 信息,避免 WebView 中出现 Cookie 丢失的问题。