使用javascript防止safari睡眠

使用javascript防止safari睡眠,javascript,safari,Javascript,Safari,我正在实现一个javascript定时器,定时器加载到一个iframe中,并且定时器还以一定的间隔播放一些音频文件,基本上是用于例行练习,比如说10秒钟有第一个练习,然后一分钟有第二个练习,2分钟有第三个练习,依此类推 当一个练习的时间结束,下一个练习出现时,我会更改该练习的音频,以此类推。我想要的是,在计时器运行之前,防止浏览器在手机(android、iOS)、笔记本电脑等各种模式下休眠 我使用了两种解决方案,分别用于我正在使用的ios系统和其他系统,无论是android系统还是笔记本电脑,我

我正在实现一个javascript定时器,定时器加载到一个iframe中,并且定时器还以一定的间隔播放一些音频文件,基本上是用于例行练习,比如说10秒钟有第一个练习,然后一分钟有第二个练习,2分钟有第三个练习,依此类推

当一个练习的时间结束,下一个练习出现时,我会更改该练习的音频,以此类推。我想要的是,在计时器运行之前,防止浏览器在手机(android、iOS)、笔记本电脑等各种模式下休眠

我使用了两种解决方案,分别用于我正在使用的ios系统和其他系统,无论是android系统还是笔记本电脑,我都在尝试如上所述的视频

我最后一个检查代码是

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();
}
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)
};
如果(ua.iOS){
preventIosSleep=setInterval(函数(){
window.top.location.href='/';
setTimeout(函数(){
试一试{
window.top.stop();
}捕获(例外){
document.execCommand('Stop');
}
}, 0);
}, 10000);
}否则{
睡眠。预防();
}
//当释放这些东西的时候
如果(ua.iOS){
clearInterval(睡眠);
}否则{
sleep.allow();
}

如上文所述,sleep.js是从链接中获取的。我已经试了一个星期了。除了MAC上的safari之外,该解决方案在所有浏览器上都运行良好。有谁能告诉我如何停止safari浏览器而不进入睡眠模式。

过去,您可以在页面上添加音频标签或在隐藏的iframe中重新加载URL。但到iOS 7为止,这些都不起作用。唯一可行的解决方案是创建一个使用UIWebView的应用程序


以下是您感兴趣的附加信息:

如果您正在寻找设备级控制,我建议您创建cordova应用程序。我相信你希望在浏览器中完成的事情是苹果积极阻止的;可能是由于电池寿命和/或设备安全原因

如果您选择该路线,您可以使用:


希望有帮助。

你不能。。。。。。。。你的“检查东西的最终代码”已经被
AppleWebKit
regex注释掉了,因此
ua.iOS
甚至不会在macOS上检测到Safari。你至少确认过你可以在macOS上检测到Safari吗?如果你可以检查我的问题,这些东西在设备上工作,但在MacSafari上不工作。所以,如果你能帮忙的话。所以总的来说,让我们这样结束是不可能的。这样,如果其他人尝试,他们可以得到一些帮助。