首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止iPhone (包括iOS 7)在HTML或JS中进入睡眠状态?

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

Stack Overflow用户
提问于 2013-09-20 05:43:02
回答 2查看 12.8K关注 0票数 15

我正在尝试写一些代码来保持手机的活力,而不是在网页上打瞌睡。

在我的搜索中,我找到了这篇文章:Prevent iOS mobile safari from going idle / auto-locking / sleeping?

但是,循环音频文件似乎不再能让MobileSafari保持活力,也不能防止手机锁定。当强制页面每30秒刷新一次时,我需要原始页面保持打开状态。

谷歌最新的交互式音乐视频Just A Reflektor似乎阻止了移动设备上的锁,而且他们的JS here引用了一个preventSleepIos函数。

我可以简单地做些什么来防止iOS睡着?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-03 21:11:48

如果你通过http://jsbeautifier.org/运行这个简化的脚本,你就会明白这个黑客是如何工作的。

黑客的想法如下:如果在safari中请求新的页面,ios设备将重置睡眠超时。

了解了这一点,我们可以设置一个间隔,每隔30秒左右请求一个新页面:

代码语言:javascript
运行
复制
iosSleepPreventInterval = setInterval(function () {
    window.location.href = "/new/page";
}, 30000);

现在我们需要停止请求,这样页面就不会被重定向:

代码语言:javascript
运行
复制
iosSleepPreventInterval = setInterval(function () {
    window.location.href = "/new/page";
    window.setTimeout(function () {
        window.stop()
    }, 0);
}, 30000);

现在,每隔30秒就会有一个对页面的请求,所以ios设备不会进入睡眠状态,请求也会被取消,所以您不会离开页面。

注意:我将此代码用于"/new/page":

代码语言:javascript
运行
复制
sleep(10);exit;

这个破解已经在iOS 6和iOS 7上测试过了。你可以test it yourself on jsBin

Note2:安卓使用了不同的黑客手段来防止设备休眠。

票数 18
EN

Stack Overflow用户

发布于 2013-09-20 06:09:06

您必须向服务器发出请求,不幸的是,这在严格意义上的HTML或JS中是不可能的。这两种语言都是前端脚本语言,这意味着一旦加载了DOM,使用普通的HTML和CSS操作DOM只会影响前端。

据我所知,防止iOS进入睡眠状态的方法屈指可数,其中一种方法是制作一个玩具应用程序,在iOS中反复获得服务,另一种方法是设置application.idleTimerDisabled = YES,但这两种解决方案都超出了web前端技术的范围。

如果你想防止会话通过web应用丢失,你可以编写一个便宜的服务器端函数来频繁地ping服务器的时间,以保存用户的会话。

使用javascript和PHP的示例:

代码语言:javascript
运行
复制
function cd(){
   var alerttime = "<?php echo date('h:i:s', (strtotime($_SESSION['ordertime']) + (1 * 60)));  ?>"
   var extratime = "<?php echo date('h:i:s', (strtotime($_SESSION['ordertime']) + (2 * 60)));  ?>";
    redo();
}    

function getTime(){
    currenttime = "<?php echo date('h:i:s', time()); ?>";

   var cd = setTimeout("getTime()",1000);
    }
票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18905413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档