我创建了一个非常基本的应用程序,其中包括一个指向 URL http://www.w3schools.com/js/js_cookies.asp 的 SFSafariViewController
.这是一个读写cookies的测试网站。
然后我将同一个网站加载到 Mobile Safari 中,并添加了一个 cookie。我切换到我的应用程序,读取 cookie,它就在那里。我返回 Safari,添加另一个 cookie,返回我的应用程序,但第二个 cookie 没有出现。我刷新页面,没有区别。返回Safari读取cookies,都读取成功。
为了正确写入和读取 cookie,我需要在应用程序之间做些什么吗?
最佳答案
Apple Dev Forums 上的用户建议它可能只适用于“持久性 cookie”而不适用于“ session cookie”。我没有在我的 cookie 上设置过期日期。我通过获取 future 的时间来改变它:
const expireTime = new Date(Date.now() + 1000 * 60 * 60 * 24).toGMTString();
然后在头部设置:
"Set-Cookie":`query=${uri.query}; path=/; expires=${expireTime}`
现在 cookie 值出现在 SFSafariViewController 中。
关于ios - 为什么 SFSafariWebViewController 没有正确地与 Safari 共享 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36203617/