jow*_*wie 9 cookies mobile-safari ios ios9 sfsafariviewcontroller
我创建了一个非常基本的应用程序,其中包括SFSafariViewController指向URL http://www.w3schools.com/js/js_cookies.asp.这是一个用于读写cookie的测试网站.
然后我将同一个网站加载到Mobile Safari中,并添加了一个cookie.我切换到我的应用程序,读取cookie,它就在那里.我回到Safari,添加另一个cookie,回到我的应用程序,但第二个cookie没有出现.我刷新页面,没有区别.回到Safari并阅读cookie,它们都被成功读取.
我是否需要在应用程序之间进行任何操作才能正确编写和读取cookie?
Apple 开发论坛上的一位用户建议,它可能只适用于“持久 cookie”,而不适用于“会话 cookie”。我没有为我的 cookie 设置过期日期。我通过获取未来的时间来改变这一点:
const expireTime = new Date(Date.now() + 1000 * 60 * 60 * 24).toGMTString();
Run Code Online (Sandbox Code Playgroud)
然后将其设置在标题中:
"Set-Cookie":`query=${uri.query}; path=/; expires=${expireTime}`
Run Code Online (Sandbox Code Playgroud)
现在 cookie 值出现在 SFSafariViewController 中。
正如苹果公司的文件所说:
SFSafariViewController 类提供用于浏览 Web 的标准接口。视图控制器包括 Safari 功能,例如阅读器、自动填充、欺诈网站检测和内容阻止。它与 Safari 共享 cookie 和其他网站数据。用户的活动以及与 SFSafariViewController 的交互对您的应用程序不可见,该应用程序无法访问自动填充数据、浏览历史记录或网站数据。您不需要保护应用程序和 Safari 之间的数据。
默认情况下,它与 Safari 共享 cookie 和其他网站数据。你不需要做任何事。