Как я могу выдавать данные для приложения при его вызове из неактивного состояния в состояние переднего плана [Android ReactNative] - PullRequest
0 голосов
/ 18 июня 2020

У меня проблемы с передачей данных с одного устройства на другое. Сценарий: я делаю pu sh (только данные) с устройства A на устройство B. Устройство B получает pu sh и вызывает метод NativeModules "invokeApp ({data:" someValue "})"

В моем собственном модуле я пишу следующий код:


    private static ReactApplicationContext reactContext;
    public static final String LOG_TAG = "RNInvokeApp";
    private static Bundle bundle = null;

    public RNInvokeApp(ReactApplicationContext context) {
        super(context);
        reactContext = context;
    }

    @Override
    public String getName() {
        return "RNInvokeApp";
    }

    @ReactMethod
    public void invokeApp(ReadableMap params) {
        String packageName = reactContext.getPackageName();
        Intent launchIntent = reactContext.getPackageManager().getLaunchIntentForPackage(packageName);
        String className = launchIntent.getComponent().getClassName();

        try {
            Class<?> activityClass = Class.forName(className);
            Intent activityIntent = new Intent(reactContext, activityClass);

            activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent
            .FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
            reactContext.startActivity(activityIntent);
        } catch(Exception e) {
            Log.e(LOG_TAG, "Class not found", e);
            return;
        }

          WritableMap paramsData = Arguments.createMap();
          paramsData.putString("eventProperty", "someValue");

          reactContext
          .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
          .emit("appInvoked", paramsData);
      }
   }

Если устройство B на заднем или переднем плане, это работает отлично. Но когда устройство B находится в убитом состоянии, у меня нет излучения в устройстве B

const eventEmitter = new NativeEventEmitter(NativeModules.RNInvokeApp);
eventEmitter.addListener('appInvoked', (event) => {
  console.log(event.eventProperty);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...