后台模式不太工作,Ionic App 5分钟后休眠



我已经创建了一个离子应用程序与电容器,应该发送GPS坐标每分钟的API。这通常是可行的,但当屏幕被锁定时,它就变得麻烦了。

现在,我已经包含了cordova-background-mode,以及ForegroundService。然而,它仍然在5分钟后停止。我还使用了

this.backgroundMode.disableWebViewOptimizations();
this.backgroundMode.disableBatteryOptimizations(); 

但无济于事。

我甚至在设置中手动关闭了电池优化。

我忽略了什么?

如果有人需要一个解决方案,这适用于android 10 +电容器+原生背景模式:

if (this.platform.is('android')) {
this.platform.ready().then(() => {
this.backgroundMode.enable();
this.backgroundMode.setEnabled(true);
this.backgroundMode.on('activate').subscribe(() => {
this.backgroundMode.disableWebViewOptimizations();
this.backgroundMode.disableBatteryOptimizations();
});
this.backgroundMode.disableBatteryOptimizations();
});
const timer = 3 * 60 * 1000; // three minutes
setInterval(() => {
this.backgroundMode.wakeUp();
}, timer);
}

也添加在manifest:

<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_SERVICE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

插件坏了。我曾多次尝试让它工作,但都失败了。

我找到的唯一解决方案是使用这个代替。即使屏幕被锁定几个小时,它也能工作。

最新更新