Доступ к собственным данным реакции из AccessibilityService

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

Я следовал инструкциям, предоставленным https://developer.android.com/guide/topics/ui/accessibility/services для создания службы специальных возможностей.

Теперь у меня есть данные с веб-сайта на сервере доступности, например. URL-адрес и хотите попросить контекст реакции дать мне данные, которые хранятся в его хранилище избыточности (или асинхронном хранилище).

Вызвать нативный код из работающего приложения с нативным реагированием (js) довольно просто, но как бы вы реализовали наоборот?


person acuntex    schedule 13.07.2018    source источник


Ответы (1)


Единственный поддерживаемый способ отправки информации другим способом — сигнализировать о событии на собственной стороне, на которое вы подписались на стороне JavaScript.

Вот пример из документов (см. Отправка событий в JavaScript).

В JavaScript подпишитесь на событие:

import { DeviceEventEmitter } from 'react-native';
...

var ScrollResponderMixin = {
  mixins: [Subscribable.Mixin],


  componentWillMount: function() {
    ...
    this.addListenerOn(DeviceEventEmitter,
                       'keyboardWillShow',
                       this.scrollResponderKeyboardWillShow);
    ...
  },
  scrollResponderKeyboardWillShow:function(e: Event) {
    this.keyboardWillOpenTo = e;
    this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);
  },

В Java отправьте событие:

...
private void sendEvent(ReactContext reactContext,
                       String eventName,
                       @Nullable WritableMap params) {
  reactContext
      .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
      .emit(eventName, params);
}
...
WritableMap params = Arguments.createMap();
...
sendEvent(reactContext, "keyboardWillShow", params);
person Aaron Brager    schedule 19.07.2018