如何防止iOS独立Web应用程序locking设备?

我的原型服务创build了独立的,可伸缩的iOSnetworking应用程序。 有时他们在使用时locking设备。

主页button停止工作,应用程序继续工作。 在设备的控制台中重复显示以下内容(通过附加到xcode进行回顾)。

Apr 25 14:34:57 SpringBoard[67] <Warning>: Unable to determine intended instance of com.apple.webapp. Resulting app will be undefined.

由于这个原因还不得而知,所以我想我会告诉你,我正在iOS 6和iPhone 4上的HTML5应用程序中遇到同样的问题。 在我的情况下,应用程序不locking(仍然有效),但主页button停止工作(完全像你和Jens)。 时机是随机的,似乎没有任何我可以做的一贯复制它。 此外,当发生这种情况时,即使设备处于横向(在iPhone上),window.orientation也总是错误地报告纵向模式。

更新12/15/2013
1)检测这个错误:我已经能够捕捉到iPhone上发生错误的时候。 我的应用程序在横向模式下工作,通常他们可以随时翻转到风景。 但是,为了捕捉这个bug,它现在检测到应用程序是否在iPhone上运行,并抛出一个包页面,要求用户将其设备旋转到横向才能启动。 在此期间,应用程序会查看陀螺仪是否指示设备正确处于横向模式,但是windows.orientation(不正确)是否显示纵向模式。 只有当错误被触发时才会发生。 那么,我可以显示一个很好的信息告诉用户如何恢复。 注意:这种方法只适用于iPhone …我还没有想出一个解决scheme来检测它在iPad上。

2)避免这个错误:我find了一种避免发生问题的方法(只需要额外的工作)。 我注意到,在清理了事件处理程序的工作方式之后,问题只发生在应用程序的后续加载中…不是第一次加载它。 我也注意到,closures应用程序后,它仍然运行在iOS“任务列表”(不知道这是什么适当的iOS术语)。

所以双击主页button来调出任务列表并将其擦除(真正closures它)。 在这之后,我从来没有遇到这个问题。 附加说明:只是重新启动设备是不够的(似乎仍然会导致挂起)。 重新启动后,我发现它将在任务列表中两次 (这似乎是错误的,也许是内部出现问题的线索)。 无论如何,如果您重新启动,在启动应用程序之前,请确保您转到任务列表,并首先删除应用程序的所有实例。

SoundJS团队已经把这个问题跟踪到了进入全屏模式的networking应用,使用:

<meta name="apple-mobile-web-app-capable" content="yes" />

向苹果报告了一个错误(参考号15133492)。

目前我们没有工作,除非没有进入全屏模式。