iOS网络活动指示器在网络应用程序中持续旋转添加到主屏幕

第二次更新,2014年3月:苹果关闭错误,说他们没有足够的信息,但我的项目是一个大的 PHP应用程序,我不能(也不会)完全发送给苹果他们来重现这个问题.如果任何人都有一个可共享,简单,纯粹的HTML应用程序,也表现出这个问题,请让我知道,我会提交它重新打开的bug,希望他们会看到它.

第一次更新:由于更多的用户报告此问题,没有人有线索,我在苹果提交了一个错误报告.如果任何有用的东西不在NDA下,我会在这里发布.

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

删除所有AJAX调用页面内容没有任何区别;即使Web应用程序只包含一个这样的空白页面,问题依然存在:

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

解决方法

通过从主屏幕中删除网络应用程序,浏览Safari中的页面并将其作为新的网络应用程序重新添加到主屏幕来解决问题.

我的猜测是,问题出在于iOS存储在当前网页应用程序添加到主屏幕的元数据(例如apple-mobile-web-app-capable和apple-touch-startup-image中的值元标记).

当网页应用访问页面时,至少有些信息似乎不会刷新,即使它开始提供完全不同的内容(例如问题中显示的空白页面).我知道这是适用于苹果移动网络应用程序的元标记;将该标签添加到已经安装到主屏幕的网站上并不会突然使其成为本机的网络应用程序;在将网络应用添加到主屏幕的时刻,标签必须存在.

我想我必须在开发阶段安装初始的Web应用程序,其中该页面被称为不存在的资源(如图像,CSS或JS文件),导致一个Web应用程序不断寻找不存在的内容即使当前的网页不再指向它,可能解释无限活动指标行为.

我不确定那是事情,但这似乎是对这个问题最有可能的解释.

如果你遇到这个;检查您的页面引用的所有资源是否存在,然后删除并重新添加网络应用程序到屏幕,看看它是否解决了问题.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...