Browse Source

delayed register service

Wei Fang 5 năm trước cách đây
mục cha
commit
6f9564bb16

+ 8 - 0
README.md

@@ -162,8 +162,16 @@ componentWillUnmount() {
 
 componentDidMount() {
 
+    // 注册请求
+    MIPush.registerPush();
+
     MIPush.setAlias("oooooo");
 
+    MIPush.addEventListener("xmpush_regId", (regId) => {
+
+      console.log("收到注册结果regId:", regId);
+    });
+
     MIPush.addEventListener("xmpush_click", (notification) => {
 
       console.log("app运行过程中点击通知:", notification);

+ 6 - 0
android/src/main/java/com/ichong/zzy/mipush/MIPushModule.java

@@ -67,6 +67,12 @@ public class MIPushModule extends ReactContextBaseJavaModule {
     }
 
     @ReactMethod
+    public mContext getRegId() {
+
+        return MiPushClient.getRegId(mContext);
+    }
+
+    @ReactMethod
     public void setAlias(String text) {
 
         MiPushClient.setAlias(mContext, text, null);

+ 18 - 0
android/src/main/java/com/ichong/zzy/mipush/MIPushReceiver.java

@@ -73,6 +73,24 @@ public class MIPushReceiver extends PushMessageReceiver {
         sendListener("xmpush_notify", miPushMessage);
     }
 
+    /**
+     * 接受客户端向服务器发送注册命令消息后返回的响应
+     * @param context
+     * @param miPushMessage
+     */
+    @Override
+    public void onReceiveRegisterResult(Context context, MiPushCommandMessage message) {
+        String command = message.getCommand();
+        List<String> arguments = message.getCommandArguments();
+        String cmdArg1 = ((arguments != null && arguments.size() > 0) ? arguments.get(0) : null);
+        String cmdArg2 = ((arguments != null && arguments.size() > 1) ? arguments.get(1) : null);
+        if (MiPushClient.COMMAND_REGISTER.equals(command)) {
+            if (message.getResultCode() == ErrorCode.SUCCESS) {
+                sendListener("xmpush_regId", cmdArg1);
+            }
+        } 
+    }
+
     private void sendListener(String type, MiPushMessage miPushMessage) {
 
         MIPushPackage.sReactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(type, MIPushHelper.parsePushMessage(miPushMessage));

+ 5 - 0
index.js

@@ -27,7 +27,12 @@ class MIPush extends NativeEventEmitter {
     }
 
     init(appid, appkey) {
+        this.appid = appid;
+        this.appkey = appkey;
+    }
 
+    registerPush() {
+        const { appid, appkey } = this;
         if (Platform.OS == 'android') {
             PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.READ_PHONE_STATE).then((state) => {
                 if (state) {