Могу ли я вызвать функцию внутри класса, используя Headless JS? React-Native android - PullRequest
0 голосов
/ 21 января 2020

Я не могу найти какую-либо надлежащую документацию для реализации Headless JS в React-Native для android.

Как, на данный момент, я реализовал это:

AndroidManifest. xml:

<service android:name="com.axcesscarlock.MyTaskService" />

MainApplication. java

import android.os.Bundle;
import android.content.Intent;
import com.facebook.react.HeadlessJsTaskService;

Я создал java класс:

package com.locationlistener.service;
import android.content.Intent;
import android.os.Bundle;
import com.facebook.react.HeadlessJsTaskService;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.jstasks.HeadlessJsTaskConfig;
import javax.annotation.Nullable;

public class MyTaskService extends HeadlessJsTaskService {

  @Override
  protected @Nullable HeadlessJsTaskConfig getTaskConfig(Intent intent) {
    Bundle extras = intent.getExtras();
    if (extras != null) {
      return new HeadlessJsTaskConfig(
          "SomeTaskName",
          Arguments.fromBundle(extras),
          10000, // timeout for the task
          false // optional: defines whether or not  the task is allowed in foreground. Default is false
        );
    }
    return null;
  }
}

И этот код в javascript файле:

AppRegistry.registerHeadlessTask('SomeTaskName', () => require('SomeTaskName'));

module.exports = async (taskData) => {
    console.log('Hello from the background');
};

Мне нужно запустить функцию, когда пользователь отправляет приложение в фоновый режим, но эта функция связывает (вызывает) другие функции и данные из состояния. Так, в этом случае, я должен назвать весь класс, когда на заднем плане? В настоящее время, используя опубликованный код, у меня появляется эта ошибка: «Не удается разрешить модуль SomeTaskName».

1 Ответ

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

Убедитесь, что файл someTaskName находится в том же каталоге.

и отредактируйте

AppRegistry.registerHeadlessTask('SomeTaskName', () => require('./SomeTaskName'));

Удалось ли использовать безголовый js? Я тоже пытаюсь его применить, но мое приложение вылетает. Хотя я делаю все как описано в документации

...