如何将Java活动中的数据传递给react native?

如何将Java活动中的数据传递给react native?,java,android,reactjs,react-native,react-native-bridge,Java,Android,Reactjs,React Native,React Native Bridge,我无法将java活动中的数据传递给react native。 我正在处理一个卡支付,当支付完成时,响应存储在一个名为message的变量中。我需要将此消息传递给我的react本机代码 //Java模块,我要传递的数据在“消息”中 公共类HelloWorldModule扩展ReactContextBaseJavaModule实现ActivityEventListener{ 活动 ReactApplicationContext reactContext; 公共HelloWorldModule(Rea

我无法将java活动中的数据传递给react native。 我正在处理一个卡支付,当支付完成时,响应存储在一个名为message的变量中。我需要将此消息传递给我的react本机代码

//Java模块,我要传递的数据在“消息”中

公共类HelloWorldModule扩展ReactContextBaseJavaModule实现ActivityEventListener{ 活动

ReactApplicationContext reactContext; 公共HelloWorldModule(ReactApplicationContext reactContext,Activity活动){ super(reactContext);//React Native所需 this.reactContext=reactContext; 这个。活动=活动; reactContext.addActivityEventListener(this);//将此本机模块注册为活动结果侦听器

}

@Override
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) {
    // ReactApplicationContext reactContext = this.getReactNativeHost().getReactInstanceManager().getCurrentReactApplicationContext();
    // reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit();
    // reactContext
    // .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
    // .emit('message', message);

/*
 *  We advise you to do a further verification of transaction's details on your server to be
 *  sure everything checks out before providing service or goods.
*/
if (requestCode == RaveConstants.RAVE_REQUEST_CODE && data != null) {
    String message = data.getStringExtra("response");
    // Log.e("RAVE",message);
    if (resultCode == RavePayActivity.RESULT_SUCCESS) {
        Toast.makeText(activity, "SUCCESS " + message, Toast.LENGTH_SHORT).show();
    }
    else if (resultCode == RavePayActivity.RESULT_ERROR) {
        Toast.makeText(activity, "ERROR " + message, Toast.LENGTH_SHORT).show();
    }
    else if (resultCode == RavePayActivity.RESULT_CANCELLED) {
        Toast.makeText(activity, "CANCELLED " + message, Toast.LENGTH_SHORT).show();
    }
}
// else {
//      super.onActivityResult(activity, requestCode, resultCode, data);
// }
}

//@覆盖 //ActivityResult上的公共void(活动活动、int请求代码、int结果代码、意图数据){ //Toast.makeText(活动“hello”,Toast.LENGTH_SHORT).show(); //}

公共帐篷(意向){

}

}

//反应本机代码

   // async function to call the Java native method
    async sayHiFromJava() {
      HelloWorld.sayHi( (err) => {console.log(err)}, (msg) => {console.log(msg)} );
    }

请提供帮助。

使用设备发射器将数据从本机发送到本机

在“活动结果”中添加以下代码

ReactContext context = this.getReactNativeHost().getReactInstanceManager().getCurrentReactContext();

context.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit();
context
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
  .emit('message', message);
在react native add dive emitter listener中

import {DeviceEventEmitter} from 'react-native';

EmitterModule.addListener('message', (message) => {
  console.log(message);
};

使用设备发射器将数据从本机发送到本机

在“活动结果”中添加以下代码

ReactContext context = this.getReactNativeHost().getReactInstanceManager().getCurrentReactContext();

context.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit();
context
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
  .emit('message', message);
在react native add dive emitter listener中

import {DeviceEventEmitter} from 'react-native';

EmitterModule.addListener('message', (message) => {
  console.log(message);
};

请澄清当我生成时,我应该把代码放在哪一行——错误:unclosed character literal.emit('message',message);我是否需要包括-writeablemap params=Arguments.createMap();putString(“eventProperty”、“someValue”);如果您在上面使用emit()时遇到错误,我已经编辑了我的代码code@OverrideactivityResult(活动活动活动、int请求代码、int结果代码、意图数据){ReactApplicationContext reactContext=this.getReactNativeHost().getReactInstanceManager().getCurrentReactApplicationContext();reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit();reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit('message',message);请即时消息错误此错误--错误:未关闭的字符文本.emit('message',message);请澄清当我生成-error:unclosed character literal.emit('message',message)时,我应该将代码放在哪一行;我是否需要包含-writeablemap params=Arguments.createMap();params.putString(“eventProperty”,“someValue”);如果你得到emit()的错误,我已经编辑了我的代码以上使用code@OverrideActivityResult(Activity Activity,int requestCode,int resultCode,Intent data){ReactApplicationContext reactContext=this.getReactNativeHost().getReactInstanceManager().getCurrentReactApplicationContext();reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit();