在iOS8上,如果该Web应用程序处于 Activity 状态并从主屏幕图标启动,则在锁定屏幕然后解锁后,此HTML5 Web应用程序不会恢复js计时器。在iOS7上,计时器会在这种情况下继续运行。屏幕解锁后,我需要计时器才能继续-是否有实现此要求的提示?
注意:请先通过共享按钮使用Safari的“添加到主屏幕”,将网络应用添加到主屏幕。在Safari中运行页面不会导致上述问题。
<html>
<head>
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>Test</title>
<script>
var tim;
function go() {
tim = window.setInterval(action, 1000);
}
function action() {
document.getElementById('x').innerHTML = new Date().getTime().toString();
}
</script>
</head>
<body onload="go()">
<div id="x"></div>
</body>
</html>
最佳答案
我们最终得到的解决方案并没有解决IOS8中睡眠模式之后所有已损坏的功能,而只是ajax request / setTimeout / setInterval / requestAnimationFrame及其各自的清除功能。
睡眠模式后其他东西坏了:
制定半解决方案:
我在github上有一个半抽象的版本供其他人使用。我们在相当复杂/大型且高度依赖动画和ajax的应用程序中使用github版本,几乎没有问题。
https://github.com/TaDaa/IOS8-FIX