小编eth*_*gui的帖子

iOS系统在打开App Store URL之前挂起

  1. 我有一个带有下载应用按钮的HTML页面.当iOS用户点击时,它会通过itms-services将用户重定向到App Store.我在这里使用的链接是:

    window.location.replace("itms-apps://itunes.apple.com/app/id578505616");
    
    Run Code Online (Sandbox Code Playgroud)

    它在移动浏览器上看起来像这样: 移动网页下载按钮

  2. Facebook/Pinterest有一个应用程序内浏览器,要求用户同意,然后以"取消"或"打开"应用程序的"警报"框的形式将用户重定向到他们的应用程序,Open应用程序打开外部链接.它看起来像这样: 移动网页,其中嵌入了Facebook下载按钮

警报框看起来像这样: FB嵌入式浏览器带警报框

假设用户正在使用iOS设备.此处的预期行为是单击"打开"应用程序按钮时,用户将被重定向到App Store应用程序.但是,在实际重定向发生之前,我们看到了大约10秒的延迟.

观看以下视频:

https://www.youtube.com/watch?v=_dgh7v-IsK8

https://www.youtube.com/watch?v=_LFHeRnBFgg

https://www.youtube.com/watch?v=82Y-kj-pMyw

笔记:

  1. 我似乎无法在任何时候重现这一点.它有时只能重现.抱歉!
  2. 一旦设备第一次延迟,所有后续到AppStores的链接都会很快,直到大约延迟一天.重新启动手机和/或清除浏览器缓存和/或重新安装Facebook/Pinterest无助于重现这一点.
  3. 我尝试用https://itunes.apple.com/us/app/trusper-tips-tutorials-how/id578505616?mt=8替换itms-apps://链接,但我们仍然遇到延迟时间时间.
  4. 延迟似乎正好是10秒.

为什么会出现这种延迟?这似乎是一个糟糕的用户体验.

我目前的理论是问题出在苹果方面.原因是,一旦点击打开应用程序按钮,它就不在我们网站的手中,以及Facebook/Pinterest应用程序.我认为,一旦点击按钮,iOS就会处理从一个应用程序到另一个应用程序的实际上下文切换.因此,它表明系统调用实际打开URL是挂起,或系统调用打开App Store应用程序是?? 但是,我无法证明任何一个是真是假.有没有人有更好的解释?

[编辑04/02/2015]我可以确认此问题在我的手机上仍然存在(iPhone 5S w/iOS 8.2).我做了一些进一步的研究,发现这篇文章我认为这是一个与iOS系统相关的错误:OpenUrl冻结app超过10秒

objective-c deep-linking app-store openurl ios

39
推荐指数
1
解决办法
1141
查看次数

标签 统计

app-store ×1

deep-linking ×1

ios ×1

objective-c ×1

openurl ×1