Периодический вызов функции даже после переключения приложения Android в фоновый режим - PullRequest
0 голосов
/ 16 апреля 2019

Я разрабатываю мобильное приложение SAPUI5 Hybrid, я хочу синхронизировать данные (вызывая функцию сброса), даже если приложение переведено в фоновый режим или если устройство заблокировано. Как я могу достичь этого ??

Я пытался использовать

  1. pause (событие готовности устройства). Проблема в том, что когда приложение помещается в паузу, сначала выполняется проверка подключения к Интернету для выполнения сброса, но происходит сбой, поскольку устройство не подключено, мне нужно включить Интернет. и затем возобновите приложение и затем поставьте его обратно на паузу для успешной работы.

  2. cordova-plugin-background-fetch - который не работал.

  3. cordova-plugin-background-mode-fixed - работает только «один раз», когда приложение переводится в фоновый режим.

Я использовал следующее для «cordova-plugin-background-fetch», который не работал

var BackgroundFetch = window.BackgroundFetch;
var fetchCallback = function() {
    console.log('[js] BackgroundFetch event received');

    store.flush(sap.hybrid.flushStoreCallback, sap.hybrid.errorCallback, null, sap.hybrid.progressCallback);

    BackgroundFetch.finish();
  };
var failureCallback = function(error) {
    console.log('- BackgroundFetch failed', error);
  };
BackgroundFetch.configure(fetchCallback, failureCallback, {
    minimumFetchInterval: 15, // <-- default is 15
    stopOnTerminate: false,   // <-- Android only
    startOnBoot: true,        // <-- Android only
    forceReload: true         // <-- Android only
  });

Использовал следующее для события прослушивания "pause"

document.addEventListener("pause", function () {
store.flush(sap.hybrid.flushStoreCallback, sap.hybrid.errorCallback, null, sap.hybrid.progressCallback);
}, false);

Использовал следующее для «cordova-plugin-background-mode-fixed»

cordova.plugins.backgroundMode.enable();
cordova.plugins.backgroundMode.on('activate', function () {
store.flush(sap.hybrid.flushStoreCallback, sap.hybrid.errorCallback, null, sap.hybrid.progressCallback);
});

В основном я хочу синхронизировать устройство и сбрасывать данные один раз в день. Пожалуйста, помогите мне, если есть другой способ добиться этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...