在 Mobile Safari 可见的 WKUIWebView 中写入 cookie

Posted

技术标签:

【中文标题】在 Mobile Safari 可见的 WKUIWebView 中写入 cookie【英文标题】:Writing a cookie inside WKUIWebView visible from Mobile Safari 【发布时间】:2015-05-05 13:30:52 【问题描述】:

我正在尝试从我的应用程序中加载一个网络 URL,我需要设置一个 cookie。目前我正在使用:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:_myURL]];

但是这种方法导致我的应用程序切换到 Mobile Safari,这非常难看,因为用户失去了对我应用程序的关注。在新的 WKUIWebView 中加载网页(并使用 NSHttpCookieStorage)不是一种选择,因为显然这些 cookie 将被沙盒化。有没有其他方法可以创建一个在 Mobile Safari 中可见的 cookie?

【问题讨论】:

【参考方案1】:

ios9 开始,您可以使用SFSafariViewController,它与 Safari 移动版共享 cookie。您可以将其与自定义 URL 方案或指向 "communicate" between them 的通用链接结合使用。

【讨论】:

我需要将 Safari 应用程序中的 cookie 读取到我的应用程序内部。有可能吗?【参考方案2】:

不,你不能。可以访问 Safari 的 cookie 的应用程序将是一个安全问题。

如果您可以控制正在打开的网站,那么您可以在 url 中使用一次性登录代码作为请求参数来做一些事情。

【讨论】:

以上是关于在 Mobile Safari 可见的 WKUIWebView 中写入 cookie的主要内容,如果未能解决你的问题,请参考以下文章

在 jQuery Mobile / Mobile Safari 中按下提交后不要隐藏键盘

让 WebSocket 在 Mobile Safari 中保持活跃

mobile-safari javascript:多个 setTimeouts 或 setIntervals

在 Mobile Safari 上缓存声音

在 Safari 和 Mobile Chrome 上以编程方式播放有声视频

HTML5 Mobile Safari DatePicker - 初始值