Cordova backgroundMode插件不起作用

时间:2016-12-21 12:16:58

标签: javascript angularjs cordova ionic-framework

我使用了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来触发暂停模式,这意味着应用程序现在处于后台模式。所以我应该在控制台中收到一条消息,但我没有。

这是涟漪和控制台的屏幕截图: enter image description here 谢谢

1 个答案:

答案 0 :(得分:0)

我在离子3应用上尝试并取得了成功。

使用setTimeout时,代码只执行一次。如果你想多次运行你的代码,可以使用setInterval或循环函数。

在正常情况下,承诺对象不起作用,甚至位置服务,使用下面的代码有助于工作。

cordova.plugins.backgroundMode.disableWebViewOptimizations();