关于iPad事件,如何确定iPad是否/何时从唤醒状态变为待机状态?
我想要做的是在iPad处于非活动/待机状态时将我的Mobile-Safari web应用程序设置为锁定状态,并在它再次唤醒时要求提供PIN码。
发布于 2011-02-09 11:44:30
我同意确实应该有一些信号可以让你知道应用程序何时进入睡眠状态以及何时唤醒,但你应该能够间接地知道Safari何时唤醒。
当webview进入后台时,Safari会将其中的所有内容置于睡眠状态。它会暂停所有视频、延迟网络请求、停止更新UI并暂停所有setInterval/setTimeout操作。JS本身永远不会知道(据我所知)这些事情是如何发生的,但它可以告诉我们它已经发生了。使用它的最简单的方法是构建一个定期调用的方法,并检查自上次更新以来是否已经有很长时间了。如果你希望每10秒更新一次,而现在已经过了5分钟,那么你可以相当确定设备已经唤醒了。下面是我想出来的一个简单的例子:
var intTime = new Date().getTime();
var getTime = function() {
var intNow = new Date().getTime();
if (intNow - intTime > 1000) {
console.log("I JUST WOKE UP")
}
intTime = intNow;
setTimeout(getTime,500);
};
getTime();这将检测用户何时从另一个选项卡返回、关闭开发人员控制台或从后台返回Safari。我将间隔设置为半秒;您可以将其设置为您需要的任何值,尽管我认为非常低的值会出现并发问题,并且可能会不必要地烧掉设备上的电池。
发布于 2011-02-09 10:15:44
Mobile Safari无法访问此级别的硬件状态。我想最多的就是加速器了。
发布于 2017-01-21 04:33:51
对我有效的一种可能的解决方案是使用
$(window).on('blur', function(){});https://stackoverflow.com/questions/4940657
复制相似问题