ioni c backgroundFetch config не обновляется - PullRequest
0 голосов
/ 04 марта 2020

Я создаю приложение ioni c с конденсатором. Я надеюсь, что мое приложение может выполнять фоновые задачи после завершения. Если я правильно читаю документацию, это можно сделать, установив

stopOnTerminate: false

. Я создал пустое приложение, в котором я могу протестировать плагин backgroundFetch, и использовал следующий код.

    const config: BackgroundFetchConfig = {
      stopOnTerminate: false, // Set true to cease background-fetch from operating after user "closes" the app. Defaults to true.
    };

    this.backgroundFetch.configure(config)
        .then(() => {
          console.log('Background Fetch initialized');


          this.backgroundFetch.finish();

        })
        .catch(e => console.log('Error initializing background fetch', e));

    this.backgroundFetch.start();

Однако, когда я собираю приложение и открываю его с помощью конденсатора, в окне android studio logcat я вижу, что оно не обновило значение stopOnTerminate

com.example.app D/TSBackgroundFetch: {
      "taskId": "cordova-background-fetch",
      "isFetchTask": true,
      "minimumFetchInterval": 15,
      "stopOnTerminate": true, // This should have changed to false
      "requiredNetworkType": 0,
      "requiresBatteryNotLow": false,
      "requiresCharging": false,
      "requiresDeviceIdle": false,
      "requiresStorageNotLow": false,
      "startOnBoot": false,
      "forceAlarmManager": false,
      "periodic": true,
      "delay": -1
    }

Is Что-то еще, что мне нужно сделать, чтобы иметь возможность изменить значения по умолчанию?

1 Ответ

0 голосов
/ 05 марта 2020

удалось заставить его работать, используя другой способ импорта плагина BackgroundFetch

import BackgroundFetch from 'cordova-plugin-background-fetch';

А затем в настройках конфигурации мне нужно было добавить enableHeadless, чтобы заставить его работать

        // Your background-fetch handler.
        const fetchCallback = (taskId) => {
            console.log('[js] BackgroundFetch event received: ', taskId);
            // Required: Signal completion of your task to native code
            // If you fail to do this, the OS can terminate your app
            // or assign battery-blame for consuming too much background-time
            BackgroundFetch.finish(taskId);
        };

        const failureCallback = (error) => {
            console.log('- BackgroundFetch failed', error);
        };

        BackgroundFetch.configure(fetchCallback, failureCallback, {
            minimumFetchInterval: 15, // <-- default is 15
            stopOnTerminate: false,
            enableHeadless: true // <-- Added this line
        });

Конфиг теперь изменяется в android studio

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