【问题标题】:How can I use cordova-plugin-background mode如何使用 cordova-plugin-background 模式
【发布时间】:2021-06-11 15:13:18
【问题描述】:

我需要一些帮助才能让我的应用在后台运行。 我用 Cordova 10,jquerymobile 创建了我的第一个应用程序,它运行良好,但在背景中除外。

这个想法是安装以下插件cordova-plugin-background-mode,但我很难理解。

我安装了插件,然后我添加了以下内容

document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
    document.getElementById('deviceready').classList.add('deviseIsReady');
    cordova.plugins.backgroundMode.enable();

    if(Pages.checkConnection() == true)
        {
            Maps.load(); 
            setInterval(Maps.load, 300000);   
        }
}

这样,手机就准备好了,后台模式被激活。我将我的应用上传到我的 Android,但我的应用停止工作。

我想知道这是否是一个解决方案

$(window).load(function(){

    document.addEventListener("offline", Pages.offLine, false);
    document.getElementById("refresh").addEventListener("click", Maps.refresh);
    document.getElementById("ffield").addEventListener("change", Maps.field);
    document.getElementById("fstations").addEventListener("change", Charts.changeStation);
    document.getElementById("threshold").addEventListener("change", Pref.threshold);
    document.getElementById("ffieldpref").addEventListener("change", Pref.field);
    cordova.plugins.backgroundMode.on('EVENT', backgroundEvent);
    
});


function backgroundEvent(){
    if(cordova.plugins.backgroundMode.isActive()){
        cordova.plugins.backgroundMode.moveToBackground();
    }
    else
    {
        cordova.plugins.backgroundMode.moveToForeground();
    }
}

但我不知道它什么时候会被激活,以及它是否可以与 IOS 设计一起使用。

你们中的一些人有使用 Cordova 的经验,以及如何使用 jQuery Mobile 设置后台模式?有什么例子吗?

非常感谢您的帮助和建议。

干杯

【问题讨论】:

  • 你想达到什么目的?应用恢复时刷新一些数据?
  • 您好,感谢您的回复。我的应用程序需要从数据库中获取温度,如果温度低于阈值,手机必须响两三下(振动也很好)。如果在睡眠模式期间地图或值未更新,那并不重要,至少在重新打开(或唤醒)APP 时会刷新值。我还对推送通知进行了调查,但没有成功。有一个声音警报是非常重要的。然后车主打开APP查看状态
  • 我认为您最好使用后台提取任务来从数据库中提取数据。查看github.com/transistorsoft/cordova-plugin-background-fetch

标签: android ios cordova jquery-mobile background-process


【解决方案1】:

您不能在 Cordova 10 中使用 katzer 的 cordova-plugin-background-mode。在 9.0 上可以正常工作,但这已经够用了。如果您的 Builder 程序允许您选择 Cordova 版本,请选择 9。我无法找到适用于 10 的插件的适当替代品。

同样在 Android 中,检查您的 config.xml 或 AndroidManifest.xml 并确保有 FOREGROUND_SERVICE 权限。这是后台操作绝对需要的。

【讨论】:

  • 添加 FOREGROUND_SERVICE 权限帮助我防止应用程序在进入后台后立即被杀死。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 2021-08-18
  • 2018-12-05
  • 2016-12-12
  • 2021-02-06
  • 2019-01-18
  • 2019-10-23
相关资源
最近更新 更多