наконец-то через 2 дня я исправил вышеуказанную проблему:
попробуйте команду ниже.
$ ionic cordova platform rm android
$ ionic cordova platform rm ios
$ ionic cordova plugin add https://github.com/tushe/cordova-plugin-background-mode.git
$ npm install --save @ionic-native/background-mode
$ ionic cordova platform add android
$ ionic cordova platform add ios
Если не работает background-mode, установите ниже Изменения в cordova-plugin-background-mode работал на меня. Cra sh проблема устранена, а фоновый плагин работает нормально.
В ForegroundService. java внесены следующие изменения:
Add below import statement: import android.app.NotificationChannel;
b) Добавьте ниже глобальные переменные:
public static final String NOTIFICATION_CHANNEL_ID_SERVICE = "de.appplant.cordova.plugin.background";
public static final String NOTIFICATION_CHANNEL_ID_INFO = "com.package.download_info";
c) Замените метод keepAwake () следующим кодом:
private void keepAwake() {
JSONObject settings = BackgroundMode.getSettings();
boolean isSilent = settings.optBoolean("silent", false);
if (!isSilent) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.createNotificationChannel(new NotificationChannel(NOTIFICATION_CHANNEL_ID_SERVICE, "App Service", NotificationManager.IMPORTANCE_DEFAULT));
nm.createNotificationChannel(new NotificationChannel(NOTIFICATION_CHANNEL_ID_INFO, "Download Info", NotificationManager.IMPORTANCE_DEFAULT));
} else {
startForeground(NOTIFICATION_ID, makeNotification());
}
}
PowerManager powerMgr = (PowerManager)
getSystemService(POWER_SERVICE);
wakeLock = powerMgr.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK, "BackgroundMode");
wakeLock.acquire();
}
Добавьте ниже в AndroidManifest. xml файл:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
В коде, где я вызывал плагин фонового режима, при активации использовалась опция disableWebViewOptimizations:
cordova.plugins.backgroundMode.on('activate', function() {
cordova.plugins.backgroundMode.disableWebViewOptimizations();
});
Вышеописанная процедура работала для меня.