原生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', () => {
        //接收到操作
      });

    }