如何在同一域上的移动safari和webview之间共享数据(仅限客户端)

时间:2012-09-12 13:51:01

标签: ios mobile-safari local-storage web-sql frontend

iOS 上:
是否可以在移动safari上的页面和WebView(本机应用程序)上的页面之间共享客户端上的数据?
两个页面都在完全相同的域上。

到目前为止,我已经厌倦了webSQL和localStorage,他们似乎将数据保存在一个单独的数据库中,即使它的链接完全相同。

我不介意使用WebSQL / indexDB,localStorage,cookie,appCache, Kung Fu 等等!

非常感谢您的帮助:) 感谢

1 个答案:

答案 0 :(得分:2)

我认为您不能在Mobile Safari和嵌入UIWebView的应用之间在客户端共享数据。实际上,它们是托管在不同沙箱中的两个应用程序。 (有关沙盒的一般信息,请阅读here)。如果这是可能的,您可能会让您的应用程序损害Safari安全性,这绝对不可取。

您可以做的是使用Cookie在服务器端存储数据。为了提供一些具体的示例,您应该提供有关您要执行的操作的更多详细信息,但这里的一般想法是您唯一地标识您的用户会话,然后使用UIWebView和Mobile Safari中的此唯一标识符。然后你可以让UIWebView和Mobile Safari像这样沟通:

  1. UIWebView到Mobile Safari:您可以在Mobile Safari中打开一个网址,并让该网址对用户标识符进行编码,以便Safari可以访问相同的用户数据;

  2. Mobile Safari中的
  3. :使用自定义URL方案(例如:“myapp:// xxxxxxx”)并使您的应用程序将自己注册为该URL方案的处理程序;此外,在URL中编码用户标识符,以便您的应用知道要请求的数据。

  4. 我希望这些提示可以让您了解如何设计应用程序。