如何使用 cordova-plugin-background 模式

Posted

技术标签:

【中文标题】如何使用 cordova-plugin-background 模式【英文标题】:How can I use cordova-plugin-background mode 【发布时间】: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 【参考方案1】:

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

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

【讨论】:

添加 FOREGROUND_SERVICE 权限帮助我防止应用程序在进入后台后立即被杀死。谢谢!

以上是关于如何使用 cordova-plugin-background 模式的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?

WSARecv 如何使用 lpOverlapped?如何手动发出事件信号?