【问题标题】:Use hidden SFSafariViewController to get Safari cookies使用隐藏的 SFSafariViewController 获取 Safari cookie
【发布时间】:2016-03-01 04:57:35
【问题描述】:

我正在阅读以下关于从移动网页验证用户身份到本机 iOS 9 应用程序的帖子,并且想知道如何最好地实现类似于下面讨论的隐藏控制器的隐藏 Safari 视图控制器?

https://library.launchkit.io/how-ios-9-s-safari-view-controller-could-completely-change-your-app-s-onboarding-experience-2bcf2305137f#.r810oldla

【问题讨论】:

  • 查看此线程 stackoverflow.com/questions/39019352/… 了解有关此行为的最新指南和 iOS 10 的更新
  • 您真的在将 Safari 应用程序中的 cookie 读取到您的应用程序内部吗?我需要从 Safari 应用程序读取 cookie 到我的应用程序内部。有可能吗?

标签: ios mobile-safari


【解决方案1】:

如果您要将应用分发到 AppStore,请不要使用这种方法,因为根据更新后的App Store Review Guidelines

5.1.1:

(iv)SafariViewContoller 必须用于向用户展示信息;控制器不能被其他视图或层隐藏或遮挡。此外,应用不得在未经用户知情和同意的情况下使用 SafariViewController 跟踪用户。

【讨论】:

  • 作为该帖子的原作者,我同意。这是一个不幸但合理的担心,有人可以使用隐藏的 Safari 视图控制器来跟踪用户从 Web 到应用程序并返回。但我在更改此指南时,他们还取消了一项非常有用的技术,以使我们的应用程序更加无缝地工作,尤其是在安装期间。
  • 有很多像这样的可疑事情,应用程序可以逃脱惩罚。应用是否会因此从应用商店中移除?
【解决方案2】:

这在 iOS 11 中发生了变化。展望未来,每个应用程序(包括 Safari 本身)都将拥有一个完全沙盒化的数据存储。官方公告here(17:28分)。

不可见的 SFSafariViewController 万岁。 iOS 9 到 iOS 10。

如果您需要一种方法将有保证的用户匹配从 Safari 传递到您的应用,则需要使用现有的设备匹配网络,例如 Branch.io(完全披露:我在 Branch 团队)。您可以阅读有关 Branch 使用的技术来代替 cookie passthrough here

【讨论】:

    【解决方案3】:

    你可以试试这里的示例代码:https://github.com/mackuba/SafariAutoLoginTest

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 2022-01-23
      • 2016-11-29
      相关资源
      最近更新 更多