如何使用 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 提交?