防止Android Chrome进入闲置/自动锁定/睡眠电话?

Ada*_*amM 6 android google-chrome mobile-browser

我需要在网站上做一些禁用闲置/睡眠电话的功能.有没有人尝试在Android手机上做这个?它有可能吗?

Kin*_*lan 7

我们强烈建议开发人员不要这样做.但是有可能.您只需在页面上播放视频,设备就不会进入睡眠状态.这意味着您可以将单帧视频设置为自动循环和播放(需要用户交互)

Richard Tibbett创建了NoSleep.js来简化开发人员的流程.

  • 有有效的用例。您不能只是不提供API,然后阻止开发人员使用hacks :-P (2认同)

Per*_*erg 6

Android (7.0) 上的 Chrome 中的 JavaScript 在睡眠模式下确实会在 5 分钟后关闭。啊!

为了防止这种情况,我们需要一个音频对象:

<audio id="dummyAudio">
   <source src="silent.ogg" type="audio/ogg">
   <source src="silent.mp3" type="audio/mpeg">
</audio>
Run Code Online (Sandbox Code Playgroud)

并定期播放:

function playDummyAudio() { dummyAudio.play(); }    
$(function() {
   var dummyAudio = document.querySelector('#dummyAudio');
   window.setInterval(playDummyAudio, 60 * 1000);
}
Run Code Online (Sandbox Code Playgroud)

请注意,音频对象必须在用户手势回调中“解锁”。例如,这可以通过一个灰色的 CSS 覆盖层和一个巨大的虚拟“开始”按钮来实现,其onClick()回调仅隐藏覆盖层并调用dummyAudio.load().