我使用了Cordova backgroundMode插件。我误解了它。
document.addEventListener('deviceready', function ()
{
// Android customization
cordova.plugins.backgroundMode.setDefaults({ text: 'Doing heavy tasks.' });
// Enable background mode
cordova.plugins.backgroundMode.enable();
if (cordova.plugins.backgroundMode.isEnabled()) {
console.log("Your value is : " + cordova.plugins.backgroundMode.isEnabled());
}
else { alert("its not enabled"); }
// Called when background mode has been activated
cordova.plugins.backgroundMode.onactivate = function ()
{
console.log("its in bk mode");
setTimeout(function ()
{
// Modify the currently displayed notification
cordova.plugins.backgroundMode.configure({
text: 'Running in background for more than 5s now.'
});
}, 5000);
}
}, false);
当应用程序进入后台模式时,
onactivate
功能应该有效,对吧?
我使用Visual Studio 2015 / Ripple来触发暂停模式,这意味着应用程序现在处于后台模式。所以我应该在控制台中收到一条消息,但我没有。
答案 0 :(得分:0)
我在离子3应用上尝试并取得了成功。
使用setTimeout时,代码只执行一次。如果你想多次运行你的代码,可以使用setInterval或循环函数。
在正常情况下,承诺对象不起作用,甚至位置服务,使用下面的代码有助于工作。
cordova.plugins.backgroundMode.disableWebViewOptimizations();