9

第二次更新,2014 年 3 月: Apple 关闭了错误,称他们没有足够的信息,但我的项目是一个大型 PHP 应用程序,我不能(也不会)完全发送给 Apple 让他们重现这个问题。如果有人有一个可共享的、简单的、纯 HTML 应用程序也出现此问题,请告诉我,我将提交它以重新打开错误,希望他们会调查它。


第一次更新:随着越来越多的用户报告这个问题而没有人知道,我已经向 Apple 提交了错误报告。如果不属于 NDA 的内容有任何有用的内容,我将在此处发布。


安装(jQuery Mobile)网络应用程序后,我正在开发 iOS 6 设备(iPhone 5)的主屏幕,即使页面完全加载,屏幕顶部状态栏中的网络活动指示器也会继续旋转。该行为仅在通过 Web 应用程序打开页面时显示;在同一设备上的 Safari 浏览器中的同一页面不会显示无限旋转的活动指示器。

删除所有 AJAX 调用和页面内容并没有什么不同;即使 Web 应用程序仅包含这样的空页面,问题仍然存在:

<html>
    <head></head>
    <body><br/></body>
</html>
4

2 回答 2

13

通过从主屏幕删除 Web 应用程序,在 Safari 中浏览页面并将其作为新的 Web 应用程序重新添加到主屏幕,解决了该问题。

我的猜测是问题出在 iOS 在将 Web 应用程序添加到主屏幕时存储的元数据(例如apple-mobile-web-app-capableapple-touch-startup-image元标记中的值)。

当作为 Web 应用程序访问页面时,至少其中一些信息似乎没有被刷新,即使它开始提供完全不同的内容(例如问题中显示的空白页面)。我知道这对于apple-mobile-web-app-capable元标记是正确的;将该标签添加到已安装到主屏幕的站点不会突然使其成为具有原生外观的 Web 应用程序;在将 Web 应用程序添加到主屏幕时,该标签必须存在。

我想我一定是在开发阶段安装了初始 Web 应用程序,其中页面引用了不存在的资源(例如图像、CSS 或 JS 文件),导致 Web 应用程序一直在寻找不存在的内容即使当前网页不再引用它,也可能解释了无限活动指示器的行为。

我不确定这是否是原因,但这似乎是这个问题最有可能的解释。

如果遇到这种情况;检查您的页面引用的所有资源是否存在,然后删除该 Web 应用程序并将其重新添加到屏幕以查看它是否解决了问题。

于 2013-01-28T22:58:34.003 回答
3

我有完全相同的问题,当我从主屏幕上删除书签时它就消失了。但是在 webapp 使用一段时间后,活动指示器再次开始旋转。

在初始加载期间,我在 Apache 的访问日志中没有看到任何失败的请求,并且当活动指示器开始旋转时也没有出现任何请求,因此我认为问题不在于资源不存在。

但是,我在访问日志中看到,iOS Safari 在全屏模式下坚持请求一整批 Apple 特定文件,例如 apple-startup-image 和 apple-startup-icon。这就像谷歌浏览器坚持请求 favicon.ico 一样(叹气!)。可悲的是,当我满足 Safaris 对苹果文件的渴望时,它并没有停止旋转光盘:-(

我已经为我的 web 应用启用了 Mac OSX 网络检查器,它没有记录任何网络活动或其他问题。

在 iPad 的 Apple 手册 ( http://support.apple.com/manuals/ ) 第 12 页中,它指出活动指示器用于“网络和其他活动”。它并没有说 Safari 将指示器用于除网络活动之外的任何其他内容,但也许它是一个提示。

目前,我得出了一个暂时且不令人满意的结论,即这是一个超出 Web 开发人员控制范围的 iOS 问题。我将继续研究它并在此处发布任何新发现。也许我们可以一起揭开谜团:-)

于 2013-02-06T13:10:53.140 回答