防止iOS移动Safari浏览器空闲/自动locking/睡眠?

在iOS应用程序中,您可以设置application.idleTimerDisabled = YES来防止手机自动locking。

我需要在移动Safari浏览器中执行此操作,以使用户不会长时间触摸屏幕。 有没有文件logging的方法或黑客做这个?

(更新)他们似乎在这个网站http://www.uncoveryourworld.com做某事。 从你的iphone进行访问,当你到达在后台播放音乐的build筑物/街道场景时,只需将手机放在一边。 它永远不会入睡。

(更新2)我花了一些时间仔细看看他们如何让手机进入睡眠状态。 我已经做了一个准系统testing,似乎他们在街头场景中循环播放audio的方式就是阻止它进入睡眠状态。 如果你想testing这个只是把一个简单的audio播放器,在您的网页上循环,然后点击播放:

 <audio src="loop.mp3" onended="this.play();" controls="controls" autobuffer></audio> 

我到处search它是说这是不可能的,所以很高兴看到至less有一些方法来做到这一点,即使有点黑客。 否则,基于浏览器的游戏将无法进行涂鸦跳转。 所以,如果合适,你可以在你的游戏/应用程序中有一个循环,或者只是打一个沉默的循环。

编辑: 这个解决方法不再有效。 目前无法防止手机在野外狩猎。

是的,您可以通过audio回路阻止手机进入睡眠状态。 这个技巧不会自动启动,当访问者触摸屏幕时,您将不得不播放它。

 <audio loop src="http://www.sousound.com/music/healing/healing_01.mp3"></audio> 

testing页面 :点击播放,显示屏将保持不变,但在某些设备上会变暗,例如iOS 7的iPhone。

注意:要小心使用这个技巧,因为它会阻止访客可能使用的任何音乐,并且会惹恼他们。

编辑:目前在这个页面上的解决scheme没有在iOS 10.2以上的工作

他们做什么,如果有的话,是延长超时,所以如果手机设置为30秒睡觉,这些方法可能会推到60秒。 而已。

这是一个简单的HTML方法来做到这一点: 循环内嵌自动播放video (它也可能在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> 

不,不幸的是,你不能这样做。 实现这一目标的唯一方法是制作一个UIWebView应用程序并设置你在那里提供的variables。
https://stackoverflow.com/a/7477438/267892

即使这种方法可能不适合所有情况,您可以通过使用Javascript重新加载页面来阻止手机locking。

 // This will trigger a reload after 30 seconds setTimeout(function(){ self.location = self.location }, 30000); 

请注意,我用iOS7 beta 3testing了这个

您可以通过每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中进行了testing,但在UIWebView浏览器(例如Chrome for iOS或Facebook应用程序)中可能无法正常工作。

演示: http : //jsbin.com/kozuzuwaya/1

bfred.it的答案是有效的,如果你用enter code hereenter code here代替audio标签-tag – 但只有当页面在iOS10 + Safari中打开并且用户启动了video。 你可以用CSS隐藏video。

另外,我怀疑这个function也会在某个时候被删除。