阻止我的应用程序休眠(Cordova/Android)

Baz*_*Baz 5 javascript android cordova

我有一个Android应用程序,我从node.js webpack项目创建.

当我在手机上安装我的应用程序时,我注意到它在手机睡眠时会睡觉.所以例如,我有一个javascript计时器停止被调用:

pingTimer=setInterval(ping,pingInterval);
Run Code Online (Sandbox Code Playgroud)

用于pingInterval.如何阻止我的应用程序进入睡眠状态?最终,我会希望我的应用程序进入睡眠状态,但现在停止手机睡眠是我最好的选择.

UPDATE

我按照这里描述的说明操作:

http://www.greenbot.com/article/2993199/android/how-to-turn-off-doze-mode-for-specific-apps-in-android-marshmallow.html

但没有运气.

Pri*_*dya 8

您可以使用的最佳选择是WakeLock api

在for中添加权限manifest filewakeLock

<uses-permission android:name="android.permission.WAKE_LOCK" />
Run Code Online (Sandbox Code Playgroud)

然后您可以根据您的修改添加以下内容,如MDN行为中所建议的那样

function forPingTimer(){
 var lock =  window.navigator.requestWakeLock('screen');
 //set timeout or until the timer expires
}
Run Code Online (Sandbox Code Playgroud)

并使用该lock.unlock();功能释放锁定.

要么

对于cordova应用程序,您也可以使用插件失眠config文件中进行的更改如文档中所述,它可以简单地以下列方式使用

function forPingTimer(){
//as long as the app runs or set the timeout here or wrap it in a promise
//Simply calling window.plugins.insomnia.keepAwake() to keep awake
}
//window.plugins.insomnia.allowSleepAgain() to sleep again until the timer after the timer is fulfilled
Run Code Online (Sandbox Code Playgroud)


Gan*_*dhi 5

防止您的cordova android应用程序进入睡眠状态的最简单方法是使用Insomnia-PhoneGap-Plugin。大多数平台(例如Android,iOS和Windows)也支持此插件。

该插件易于使用。keepAwake插件中的function可以防止设备进入休眠状态,而allowSleepAgain函数调用可以使设备再次进入休眠状态。您可以在官方失眠插件链接上找到更多信息。

希望能帮助到你。干杯。