如何在Safari和Native App之间共享上下文?

Pau*_*yer 9 html5 native ios

我需要通过Safari(上下文令牌)设置一些上下文,然后从本机iOS应用程序中读取该上下文.这样做的最佳做法是什么?

到目前为止有几个想法:

  1. 在HTML 5数据库中设置上下文,但我不确定这是否可行,因为数据库可能只能从Safari访问.在本机应用程序中使用WebUIView是否允许我访问与Safari相同的HTML5数据库/本地存储
  2. 在设备存储中设置上下文,但我不确定这是否可行,因为我不知道Safari是否可以实际写入设备存储.

jak*_*eld 4

我建议选择以下两个选项之一:

  • 让网络服务器在应用程序和网站上跟踪用户,例如通过创建用户帐户。

或者

  • 通过将您的应用程序注册为协议处理程序,通过 URL 方案立即将上下文令牌传递给应用程序,请在此处查看更多信息

    建议方式:

    1. 发送带有链接和上下文令牌的电子邮件,当用户单击链接时,将上下文令牌保存在 safari 的 cookie 中,然后重定向到应用程序商店以进行应用程序下载。
    2. 当用户下载应用程序并打开它时,为用户呈现一个按钮,当用户单击它时,在 safari 中打开一个网页。
    3. Safari 使用上下文令牌加载 cookie,然后使用 URL 方案(如 yourAppName://contextToken=12345678)触发另一个链接。该链接会打开您的应用程序,该应用程序会从 URL 读取上下文令牌。

没有直接在 safari 和本机应用程序之间直接共享数据的最佳实践,并且您根本不应该这样做。所有 cookie 和存储都针对每个应用程序进行沙箱处理,并且 Safari 有自己的沙箱。

在我看来,让您的服务器通过用户帐户完成工作是最好、最干净的方式,这就是您拥有用户帐户的原因。如果您没有尝试使用协议处理程序来读取特定的 URL,我认为这也可以很方便。