在iOS应用中,您可以设置application.idleTimerDisabled = YES
以防止手机自动锁定。
我需要在手机游戏中使用Doodle Jump这样的游戏,用户可能不会长时间触摸屏幕。是否有任何记录的方法或黑客来做到这一点?
(更新) 他们似乎在这个网站http://www.uncoveryourworld.com中以某种方式这样做。从您的iPhone访问,当您到达建筑物/街道场景,在后台播放音乐时,只需将手机单独留下即可。它永远不会入睡。
(更新2) 我花了一些时间仔细研究一下他们如何让手机进入睡眠状态。我做了一个准系统测试,似乎他们在街头场景中循环音频的方式是让它无法入睡。如果你想测试一下,只需在页面上放一个简单的音频播放器,然后点击播放:
<audio src="loop.mp3" onended="this.play();" controls="controls" autobuffer></audio>
我搜索到的任何地方都说这是不可能的,所以很高兴看到即使有点黑客也至少有某种方法可以做到这一点。否则,基于浏览器的游戏将无法进行涂鸦跳转式游戏。因此,如果合适,您可以在游戏/应用程序中使用循环,或者只是播放静音循环。
答案 0 :(得分:7)
NoSleep.js似乎在iOS 11中有效,据报道它也适用于Android。
这是一种简单的HTML方法:循环内联自动播放视频(它也可以在Android Chrome 53 +中使用)
<video playsinline muted autoplay loop src="https://rawgit.com/bower-media-samples/big-buck-bunny-480p-30s/master/video.mp4" height=60></video>
&#13;
查看相同的演示on CodePen(包括秒表)
video.play()
答案 1 :(得分:6)
编辑:此工作不再有效。目前无法阻止手机在野生动物园中睡觉。
是的,您可以使用音频循环阻止手机进入睡眠状态。该技巧不会自动启动,当访问者触摸屏幕时你必须播放它。
<audio loop src="http://www.sousound.com/music/healing/healing_01.mp3"></audio>
Test page:点击播放,显示屏将继续显示,但在某些设备上会变暗,例如带有iOS 7的iPhone。
注意:小心使用这个技巧,因为它会阻止访问者可能正在使用的任何音乐 - 这会使他们烦恼。
答案 2 :(得分:1)
不,不幸的是,你不能这样做。实现这一目标的唯一方法是创建一个UIWebView应用程序并设置您在那里提供的变量 https://stackoverflow.com/a/7477438/267892
答案 3 :(得分:0)
即使这种方法在每种情况下都不合适,您也可以通过使用Javascript重新加载页面来阻止手机锁定。
// This will trigger a reload after 30 seconds
setTimeout(function(){
self.location = self.location
}, 30000);
请注意,我使用iOS7 beta 3
进行了测试答案 4 :(得分:0)
您可以通过每20-30秒刷一次刷新来停止在iOS Safari中暂停和屏幕变暗
var stayAwake = setInterval(function () {
location.href = location.href; //try refreshing
window.setTimeout(window.stop, 0); //stop it soon after
}, 30000);
请负责任地使用此代码,不要“仅仅因为”使用它。如果仅需要一点,请将其禁用。
clearInterval(stayAwake); //allow device sleep again when not needed
在Safari iOS 7,7.1.2和8.1中测试过,但它可能无法用于iOS浏览器或Facebook应用等UIWebView浏览器。
答案 5 :(得分:0)
enter code here
-tag替换音频标签,bfred.it的答案有效 - 但仅当页面在iOS10 + Safari中打开且用户已启动视频时才有效。您可以使用CSS隐藏视频。
此外,我怀疑此功能也会在某些时候删除。