从我的本机应用程序将 cookie 传递给 SFSafariViewController

Posted

技术标签:

【中文标题】从我的本机应用程序将 cookie 传递给 SFSafariViewController【英文标题】:Pass cookies to SFSafariViewController from my native app 【发布时间】:2019-06-04 16:58:57 【问题描述】:

我需要从我的本地应用程序无缝登录到 SFSafariViewController 是可能的

我确实在我的应用程序中使用了 webview,但有些部分需要 SFSafariViewController。

【问题讨论】:

无法控制 SFSafari 中的 cookie 存储,这是安全的一部分。 SFSafari 与 Safari 有相同的 cookie 存储,苹果不希望开发者控制它。 【参考方案1】:

无法传递cookie,但如果您控制后端,则可以进行无缝登录。您可以实现一个授权方案,在其中生成一个短期令牌,并将该令牌传递到您在 SFSafariViewController 中加载的 URL 参数中,以便后端使用它来启动会话。

    app发出请求生成token,后端生成 应用使用令牌打开 SFSafariViewController 后端接受令牌,并返回一个cookie Web 应用程序可以像登录一样继续运行

【讨论】:

我们可以反过来做吗?从 SFSafariViewController 到主应用? 是的,这也是可能的。您可以注册自定义 URL 方案并处理应用中的深层链接。如果 SFSafariViewController 将用户重定向到该链接,您可以在应用程序中处理它(使用您传递的任何额外参数)。见developer.apple.com/documentation/uikit/…

以上是关于从我的本机应用程序将 cookie 传递给 SFSafariViewController的主要内容,如果未能解决你的问题,请参考以下文章

如何将值传递给正在加载反应本机应用程序的 Web 视图

如何将 cookie 从我的 ios 应用程序共享到移动 safari?

将字符串从我的应用程序传递到 Apple Maps 以便它可以搜索

javascript将字符串传递给本机objective-c

在命令行参数中传递新行?

将 redux 状态传递给调度程序