如何在Safari和Native App之间共享上下文? [英] How to to share context between Safari and Native App?

查看:172
本文介绍了如何在Safari和Native App之间共享上下文?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a need to set some context via Safari (a context token), and then read that context from a native iOS app. What are the best practices for doing this?

到目前为止有几个想法:

A couple thoughts so far:


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

  2. 在设备存储中设置上下文,但我'我不确定这是否有效,因为我不知道Safari是否可以实际写入设备存储。


推荐答案

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

I would suggest one of these two options:


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


  • 通过将应用程序注册为协议处理程序,立即通过URL方案将上下文令牌传递给应用程序,请参阅更多信息这里

建议方式:


  1. 发送带有链接和上下文令牌的电子邮件,当用户点击链接时,在Safari中保存cookie中的上下文令牌,然后重定向到appstore进行应用下载。

  2. 当用户下载应用并打开它时,为用户显示一个按钮,当用户点击它时,在Safari中打开一个网页。

  3. Safari使用上下文令牌加载cookie,然后使用URL方案触发另一个链接,例如yourAppName:// contextToken = 12345678。该链接打开您的应用程序,该应用程序从URL读取上下文令牌。


那里直接在safari和本机应用程序之间直接共享数据并不是最好的做法,并且根本不打算这样做。所有cookie和存储都是沙盒为每个应用程序和safari有自己的沙箱。

There is no best practice for directly sharing data between safari and a native app directly and that it is simply not intended that you should do that. All cookies and storages are sandboxed for each app and safari has its own sandbox.

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

Letting your server doing the job via user accounts is the best and clean way i.m.o. That is why you have user accounts. If you didn't try out the protocol handler for reading specific URLs, that could also be made handy I think.

这篇关于如何在Safari和Native App之间共享上下文?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆