我正在实现定时器在iframe中加载的javascript计时器,并且该计时器还会以一定的间隔播放一些音频文件,基本上它是用于常规练习所以说10秒钟有第一次练习然后是一分钟第二次练习第二个等等2分钟,等等。
当练习的时间结束并且下一个练习结束时,我会更改该特定练习的音频,依此类推。我想要的是阻止浏览器在手机(Android,iOS),笔记本电脑的每个模式中睡眠,直到计时器运行。
我使用了ios的2个解决方案,我正在使用它来重新加载页面,对于其他人,无论是Android还是笔记本电脑,我正在尝试按照here所述的视频。
我检查事情的最终代码是
var ua = {
Android: /Android/ig.test(navigator.userAgent),
// iOS: /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent)
iOS:/iPhone|iPad|iPod/i.test(navigator.userAgent)
};
<script type="text/javascript" src="js/sleep.js"></script>
if (ua.iOS) {
preventIosSleep = setInterval(function(){
window.top.location.href = '/';
setTimeout(function(){
try {
window.top.stop();
} catch (exception) {
document.execCommand('Stop');
}
}, 0);
}, 10000);
} else {
sleep.prevent();
}
// and when releasing the things
if (ua.iOS) {
clearInterval(preventIosSleep);
} else {
sleep.allow();
}
如上所述,sleep.js取自链接。一直在尝试一周左右的事情。此解决方案适用于除MAC上的Safari之外的所有浏览器。任何人都可以告诉我如何阻止Safari浏览器进入睡眠模式。
答案 0 :(得分:6)
过去,您可以执行黑客操作,例如在页面上添加音频标记或在隐藏的iframe中重新加载网址。但是,从iOS 7开始,这些都不起作用。唯一可行的解决方案是创建一个使用UIWebView的应用程序。
以下是您感兴趣的其他信息:https://stackoverflow.com/a/7477438/1640090
答案 1 :(得分:2)
如果您正在寻找设备级控制,我建议您创建一个cordova应用程序。我相信你希望在浏览器中实现的类型是Apple积极阻止的东西;可能是因为电池寿命和/或设备安全原因。
如果你走这条路,你可以使用: https://github.com/EddyVerbruggen/Insomnia-PhoneGap-Plugin
希望它有所帮助。