javascript - 如何防止 iPhone(包括 iOS 7)在 HTML 或 JS 中进入休眠状态?

标签 javascript html iphone ios auto-lock

我正在尝试编写一些代码来让手机保持事件状态,而不是在网页上休眠。

在我的搜索中,我找到了这篇文章: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/

相关文章:

javascript - PHP 在服务器上调整图像大小并通过 ajax 返回

html - Groovy/Grails Hibernate 无法创建 bean 事务

iphone - CoreMotion 的罗盘航向值错误

javascript - 如何将点击事件添加到我在 javascript 中构建的按钮?

javascript - Backbone.js - Todo Collection - 这个返回语句中到底发生了什么?

html - 在 Chrome 中使用 md-input 定位错误 - Angular Material & HTML

iphone - 我对 “anonymous iOS memory” 感到困惑

iphone - 自动更新应用程序内购买 - 从我的应用程序链接到应用程序商店应用程序中的适当设置

javascript - 如何通过 jQuery/js 在内联 css 中添加 flex 而不是 block

html - Bootstrap 4 对嵌套列进行排序