第二次更新,2014年3月: Apple关闭了错误消息,说他们没有足够的信息,但我的项目是一个很大的PHP应用程序,我不能(也不会)完全发送到Apple为他们重现这个问题。如果有人有一个可共享,简单,纯HTML的应用程序也会出现这个问题,请告诉我,我会提交它以重新打开错误,希望他们能够调查它。
第一次更新:随着越来越多的用户报告此问题并且没有人知道,我已向Apple提交了错误报告。如果有任何有用的东西来自不属于NDA的东西,我会在这里发布。
安装了我正在开发到我的iOS 6设备(iPhone 5)主屏幕的(jQuery Mobile)网络应用程序后,屏幕顶部状态栏中的网络活动指示器即使在页面显示后仍然保持旋转状态完全加载。仅当通过Web应用程序打开页面时,才会显示该行为;在相同设备上浏览Safari中的同一页面并不会显示无限旋转的活动指示器。
删除所有AJAX调用和页面内容并没有什么区别;即使Web应用程序仅包含如下所示的空白页面,问题仍然存在:
<html>
<head></head>
<body><br/></body>
</html>
答案 0 :(得分:13)
通过从主屏幕删除网络应用程序,浏览Safari中的页面并将其作为新的网络应用程序重新添加到主屏幕,解决了该问题。
我的猜测是问题在于iOS存储的元数据,此时Web应用程序已添加到主屏幕(例如apple-mobile-web-app-capable
和apple-touch-startup-image
元标记中的值)
当访问网页作为网络应用程序时,至少有一些信息似乎没有刷新,即使它开始提供完全不同的内容(例如问题中显示的空白页面)。我知道apple-mobile-web-app-capable
元标记的确如此;将该标记添加到已安装到主屏幕的网站上并不会突然使其成为一个看起来像母语的网络应用程序;在将Web应用程序添加到主屏幕时,标签必须存在。
我认为我必须在开发阶段安装初始Web应用程序,其中页面引用了不存在的资源(例如图像,CSS或JS文件),从而导致Web应用程序一直在寻找非 - 即使当前网页不再引用它,仍然存在内容,可能解释无限活动指标行为。
我不确定这是原因,但它似乎是这个问题最可能的解释。
如果你遇到这个;检查您的网页引用的所有资源是否存在,然后删除并重新添加网络应用程序到屏幕,看它是否解决了问题。
答案 1 :(得分:3)
我有完全相同的问题,当我从主屏幕删除书签时它会消失。但是,在webapp使用一段时间后,活动指示器再次开始旋转。
在初始加载期间,我没有在Apaches访问日志中看到任何失败的请求,并且当活动指示器开始旋转时没有出现请求,所以我认为问题不是关于不存在的资源。
但是,我在访问日志中看到iOS Safari坚持在全屏模式下请求一批Apple特定文件,例如apple-startup-image和apple-startup-icon。这就像谷歌Chrome坚持要求favicon.ico(叹息!)的方式。可悲的是,当我满足Safaris对苹果文件的渴望时,它并没有阻止旋转盘: - (
我已经为我的webapp启用了Mac OSX Web检查器,它没有注册任何网络活动或其他任何问题。
在iPad的Apple手册(http://support.apple.com/manuals/)第12页中,它指出活动指示器用于“网络和其他活动”。它并没有说Safari除了网络活动之外还使用其他任何指标,但也许这是一个暗示。
目前,我已经得出了一个暂时且令人不满意的结论,即iOS问题超出了Web开发人员的控制范围。我将继续黑客攻击并在此发布任何新发现。也许我们在一起可以揭开神秘面纱: - )