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

11

我的原型服务创建了可以独立安装的iOS Web应用程序。有时候在使用过程中会导致设备死机。

主页按钮停止工作,但应用程序仍在运行。下面是设备控制台中反复显示的内容(通过连接到Xcode检索)。

Apr 25 14:34:57 SpringBoard[67] <Warning>:无法确定com.apple.webapp的预期实例。结果应用程序将未定义。


你把应用程序保存到主屏幕了吗? - Black Frog
是的,它已安装到主屏幕上。 - Nathan Manousos
遇到了完全相同的问题,应用程序突然锁定设备,但应用程序仍在工作。主页按钮等无响应。连接到Xcode时看到相同的错误消息。如果您找到解决方案,我很乐意听取。 - Jens Ljungblad
一定要向苹果公司的Bug报告中心提交错误报告!http://bugreport.apple.com - Nathan Manousos
2个回答

4
由于导致此问题的原因仍未知,我想通过告诉您,在IOS 6上的iPhone 4s上使用HTML5应用程序时遇到了完全相同的问题。在我的情况下,应用程序不会锁定(仍然可以正常工作),但主页按钮停止工作(与您和Jens完全相同)。时间是随机的,并且似乎与我无法一致地复制的任何内容有关。此外,当它发生时,窗口方向总是错误地报告纵向模式,即使设备在横向(在iPhone上)。
更新日期为12/15/2013
1)检测此错误:我已经能够捕获iPhone上的错误发生时刻。我的应用程序在横向模式下工作,通常他们可以随时翻转到横向模式。但是为了捕获此错误,现在它会检测应用程序是否正在iPhone上运行,并弹出一个路障页面,要求用户将其设备旋转到横向以开始。在此期间,应用程序查看陀螺仪是否指示设备处于正确的横向模式,但是windows.orientation(不正确地)显示为纵向。只有在触发错误时才会发生这种情况。因此,我可以显示一个漂亮的消息,告诉用户如何恢复。注意:此方法仅适用于iPhone...我还没有找到在iPad上检测它的解决方案。
2)避免此错误:我发现一种避免出现问题的方法(需要额外工作)。我注意到,在清理了我的事件处理程序的方式之后,问题只会在应用程序的后续加载中出现,而不是在我第一次加载时。我还注意到,在关闭应用程序后,它仍在iOS“任务列表”中运行(不确定这个术语是否正确)。因此,双击主页按钮以打开任务列表并滑动它以关闭它。在按照此步骤操作后,我从未遇到过该问题再次发生的情况。附加说明:仅重新启动设备是不够的(似乎仍然会导致卡顿)。在重新启动后,我注意到它将在任务列表中出现两次(这似乎是错误的,并且可能是内部出错的线索)。无论如何,在启动应用程序之前,如果您重新启动,请确保先转到任务列表并删除所有应用程序实例。

我也遇到了同样的问题,我的4S和iOS 6也是如此。希望这是他们将在iOS 7中修复的问题。 - Nathan Walker
确认在iOS 7上仍然发生这种情况 :( - Ian Ippolito
在iOS7上,我找到了一种方法来每次复制它(至少对于我的应用程序): 1)将手机旋转到横向 2)将手机放平! 3)启动应用程序 除了锁定主页按钮外,我发现它还会导致事件侦听器停止工作。此外,iOS状态栏会卡住,并且在切换回横向模式时不会移动到屏幕顶部。然而,当我注释掉所有方向更改、调整大小、加载、触摸移动的事件侦听器时,可靠性大大提高。不幸的是,它仍然会挂起,但只有以前的1/5时间。这不是一个解决办法,但也许是一个线索。 - Ian Ippolito

1

SoundJS团队已经追踪到此问题是因为Web应用程序使用以下方式进入全屏模式:

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

一个错误已经向苹果公司报告(参考编号#15133492)。

目前我们唯一的解决办法就是不要进入全屏模式。


是的,这就是我所说的“独立网络应用程序”的意思。如果你和你的团队想出什么,请告诉我! - Nathan Manousos
@OJay(顺便说一下,我喜欢SoundsJS!)在iOS7上,我找到了一种方法可以每次复制(至少对于我的应用程序): 1)将手机旋转到横向。 2)将手机放平! 3)启动应用程序。 除了锁定主页按钮外,我发现它还会导致事件侦听器停止工作。此外,当iOS状态栏移动到横向模式时,它也会卡住并且无法移动到屏幕顶部。 然而,当我注释掉所有的事件侦听器时,可靠性大大提高!不幸的是,它仍然会挂起,但只有以前的1/5时间。这不是一个解决方案,但可能是一个线索。真的希望苹果能回应你的错误。 - Ian Ippolito

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接