原生Android 向React native 发送通知 - ImVeryGood/Loan GitHub Wiki
package com.baishop.jiankang.reactnative;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import java.util.Map;
public class EventEmitter {
private static ReactContext mContext;
protected static void init(ReactContext context) {
mContext = context;
}
public static boolean isNull() {
return mContext == null;
}
/**
* @param eventName
* @param params WritableMap params = Arguments.createMap();
*/
public static void sendEvent(String eventName, Map params) {
if (mContext != null) {
mContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(eventName,
Arguments.makeNativeMap(params));
} else {
Log.e("EventEmitter", "Please init context first!");
}
}
}
只需要在module里初始化一次就行了
public RNChatModule(ReactApplicationContext reactContext) {
super(reactContext);
this.reactContext = reactContext;
//初始化
EventEmitter.init(reactContext);
}
使用:
1.在Android端发送
EventEmitter.sendEvent("updateChat", null);
2.在RN端接收:
componentDidMount() {
this.subscription = DeviceEventEmitter.addListener('updateChat', () => {
//接收到操作
});
}