React native 从AccessibilityService访问本机数据

React native 从AccessibilityService访问本机数据,react-native,react-native-android,accessibilityservice,React Native,React Native Android,Accessibilityservice,目前,我有一个react原生应用程序,它的redux商店中存储了数据 我按照提供的说明创建了可访问性服务 现在,我有来自可访问性服务器中的网站的数据,例如url,并希望请求react本机上下文提供存储在其redux存储(或异步存储)中的数据 从运行中的react native app(js)调用本机代码非常容易,但是如何实现另一种方法?唯一支持的另一种方法是在本机端发送一个事件,该事件是您在JavaScript端订阅的 下面是中的一个示例(请参阅将事件发送到JavaScript) 在JavaSc

目前,我有一个react原生应用程序,它的redux商店中存储了数据

我按照提供的说明创建了可访问性服务

现在,我有来自可访问性服务器中的网站的数据,例如url,并希望请求react本机上下文提供存储在其redux存储(或异步存储)中的数据


从运行中的react native app(js)调用本机代码非常容易,但是如何实现另一种方法?

唯一支持的另一种方法是在本机端发送一个事件,该事件是您在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);