Javascript iPhone应用程序和mobile safari之间是否存在共享状态?

Javascript iPhone应用程序和mobile safari之间是否存在共享状态?,javascript,iphone,safari,mobile-safari,Javascript,Iphone,Safari,Mobile Safari,我有一个网站和一个原生iphone应用程序。该应用程序注册一个自定义协议。我希望站点在适当的时候自动重定向到协议,但前提是用户安装了应用程序(以避免出现恼人的对话框)。这意味着我需要从应用程序中写入一些状态,以便在mobile safari中读取,从而将应用程序标记为已安装。Cookie似乎不存在于跨过程中。还有其他地方可以储存我的标记吗?请查看博客文章,了解苹果是如何为Mobile Me Gallery应用程序储存标记的。它涉及到应用程序在Safari中打开一个网站(在您的服务器上),将“应用

我有一个网站和一个原生iphone应用程序。该应用程序注册一个自定义协议。我希望站点在适当的时候自动重定向到协议,但前提是用户安装了应用程序(以避免出现恼人的对话框)。这意味着我需要从应用程序中写入一些状态,以便在mobile safari中读取,从而将应用程序标记为已安装。Cookie似乎不存在于跨过程中。还有其他地方可以储存我的标记吗?

请查看博客文章,了解苹果是如何为Mobile Me Gallery应用程序储存标记的。它涉及到应用程序在Safari中打开一个网站(在您的服务器上),将“应用程序已安装”cookie加载到Safari中。

回到这个问题后,我找到了另一个部分解决方案。事实证明,无效协议对话框并不像警报那样阻止javascript执行

因此,以下是从web启动应用程序时如何处理回退:

  • 注册一个setTimeout处理程序,以便在500毫秒后重定向到回退页面(使用window.location.replace)
  • 注册取消超时的onBlur处理程序
  • 使用自定义协议打开url
  • 如果安装了应用程序,浏览器将打开应用程序,模糊页面并取消回退
  • 如果未安装该应用程序,用户最多只能看到500毫秒的对话框,然后才能快速转到回退页面
事实上,我更喜欢这个,因为一方面,没有应用程序的人有时会在网站上看到一闪而过的对话框,另一方面,它不会影响应用程序的首次发布体验。在huntaub的回答中描述的技术导致了一对分心的过渡,并在第一次发布应用程序时引发了移动safari的闪现