我正在尝试编写一些代码来让手机保持事件状态,而不是在网页上休眠。
在我的搜索中,我找到了这篇文章:Prevent iOS mobile safari from going idle / auto-locking / sleeping?
但循环播放音频文件似乎不再能让 MobileSafari 保持活跃并防止手机锁定。虽然强制页面每 30 秒刷新一次有效,但我需要原始页面保持打开状态。
Google 最新的互动音乐视频,Just A Reflektor , 似乎在阻止手机锁定,他们的 JS here引用 preventSleepIos 函数。
我可以简单地做些什么来防止 iOS 进入休眠状态?
谢谢!
最佳答案
如果您通过 http://jsbeautifier.org/ 运行缩小脚本您将了解此 hack 的工作原理。
黑客的想法如下:如果在 safari 中请求新页面,则 ios 设备将重置 sleep 超时。
知道了这一点,我们可以设置一个间隔,每 30 秒左右请求一个新页面:
iosSleepPreventInterval = setInterval(function () {
window.location.href = "/new/page";
}, 30000);
现在我们需要停止请求,这样页面就不会被重定向:
iosSleepPreventInterval = setInterval(function () {
window.location.href = "/new/page";
window.setTimeout(function () {
window.stop()
}, 0);
}, 30000);
现在每 30 秒就会有一个页面请求,因此 ios 设备不会进入休眠状态,请求将被取消,因此您不会离开该页面。
注意:我将此代码用于“/new/page”:
sleep(10);exit;
此 hack 已在 iOS 6 和 iOS 7 上测试。您可以 test it yourself on jsBin .
注意 2:Android 使用不同的 hack 来防止设备休眠。
关于javascript - 如何防止 iPhone(包括 iOS 7)在 HTML 或 JS 中进入休眠状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18905413/