我有一个网站和一个本地iphone应用程序。应用程序注册一个自定义协议。我希望网站在适当的时候自动重定向到协议,但只有当用户安装了应用程序时(以避免恼人的对话)。这意味着我需要从应用程序中编写一些可以在移动Safari中阅读的状态,以将应用程序标记为已安装。饼干似乎不存在交叉过程。我还有其他地方可以储存我的标记吗?iPhone应用程序和移动Safari浏览器之间是否有共享状态?
5
A
回答
4
看看this博客文章,了解苹果是如何为Mobile Me Gallery应用程序做的。它涉及到应用程序在Safari中打开一个网站(在您的服务器上),它将一个'App Installed'Cookie加载到Safari中。
3
回到这个问题后,我发现了另一个部分解决方案。事实证明,无效的协议对话框不会像阻止警告一样阻止JavaScript执行。
所以,这里是如何启动从Web应用程序时,你处理回退:
- 注册一个setTimeout的处理程序重定向到后,说回退页(含window.location.replace),500毫秒
- 注册如果安装了应用程序,取消超时
- 打开的网址与你的自定义协议
- 一个的onblur处理程序,浏览器会打开应用程序,模糊了网页,并取消后备
- 如果没有安装该应用程序,用户将只能看到最多500毫秒的对话框他们接走后备页面
其实我喜欢这更好,因为之前同时,一方面人没有应用有时会在网站上闪现对话,另一方面,它不会影响应用程序的首次启动体验。在huntaub的回答中描述的技术会在应用首次推出时引起一对分散注意的过渡和移动Safari的闪光。
相关问题
- 1. 移动Web浏览器和移动Web应用程序共享相同的localStorage
- 2. PWA可以在浏览器之间共享状态/数据吗?
- 3. 在#[test]之间共享动态状态
- 4. iPhone,移动Safari浏览器,YouTube的...留
- 5. 从iPhone上的全屏Web应用程序启动移动Safari浏览器
- 6. 启动浏览器(Safari浏览器)我的应用程序
- 7. iPhone Safari浏览器应用程序浮动div
- 8. iPhone浏览器:检查是否从浏览器安装iPhone应用程序
- 9. 在移动Safari浏览器中打开应用程序
- 10. 在本地移动应用程序中嵌入Safari浏览器
- 11. 在OS X应用程序中模拟移动Safari浏览器
- 12. 移动Safari浏览器,Web应用程序,Site.Manifest和没有互联网连接
- 13. 线程池是否在应用程序域之间共享?
- 14. 如何在iPhone应用程序和applewatch之间共享数据?
- 15. 在iPhone应用程序之间共享视图和代码
- 16. 移动应用程序浏览器? Asp.net?
- 17. IIS7:使用状态服务器在应用程序之间共享会话
- 18. 从移动Safari浏览器
- 19. 应用程序和共享会话之间的共享DLL
- 20. 检测Silverlight应用程序是否在浏览器中处于活动状态
- 21. Down状态iOS按钮移动Safari浏览器
- 22. App Engine - 是否在应用程序版本之间共享memcache?
- 23. 在浏览器和服务器之间共享逻辑
- 24. 在iPhone应用程序中使用HTTP打开Safari浏览器
- 25. 移动浏览器中的HTML5状态
- 26. 在多进程之间共享进程之间的状态
- 27. 如何在Web和移动应用程序之间共享Twitter用户凭据?
- 28. 是否在浏览器标签页/窗口之间共享requestAnimationFrame()调用?
- 29. 应用程序之间共享在C#
- 30. 在应用程序之间共享drawables