Przeglądaj źródła

添加部分api

添加部分api
linbing 4 lat temu
rodzic
commit
15373b630a

+ 2 - 2
CHANGELOG.md

@@ -1,3 +1,3 @@
-## 0.0.3
+## 1.0.0
 
-* 修改ios的bug
+* 添加其他阿里云推送api接口

+ 2 - 1
LICENSE

@@ -1 +1,2 @@
-TODO: Add your license here.
+Copyright © 2021, linb
+All rights reserved.

+ 156 - 5
android/src/main/java/com/flutter/flutter_aliyun_push/FlutterAliyunPushPlugin.java

@@ -26,6 +26,7 @@ import org.greenrobot.eventbus.Subscribe;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import io.flutter.Log;
 import io.flutter.embedding.engine.plugins.FlutterPlugin;
@@ -312,13 +313,25 @@ public class FlutterAliyunPushPlugin implements FlutterPlugin, MethodChannel.Met
   public void onMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result result) {
     Log.i(TAG, "onMethodCall:"+call.method);
     String method = call.method;
-    Object arguments = call.arguments;
     try {
-      if (method.equals("getPlatformVersion")) {
-        // This message is sent when the Dart side of this plugin is told to initialize.
-        result.success("Android " + android.os.Build.VERSION.RELEASE);
-      }else if(method.equals("listened")) {
+      if(method.equals("listened")) {
         isFlutterHasListened = true;
+      }else if(method.equals("bindAccount")) {
+        bindAccount(call,result);
+      }else if(method.equals("unbindAccount")) {
+        unbindAccount(call,result);
+      }else if(method.equals("bindTag")) {
+        bindTag(call,result);
+      }else if(method.equals("unbindTag")) {
+        unbindTag(call,result);
+      }else if(method.equals("listTags")) {
+        listTags(call,result);
+      }else if(method.equals("addAlias")) {
+        addAlias(call,result);
+      }else if(method.equals("removeAlias")) {
+        removeAlias(call,result);
+      }else if(method.equals("listAliases")) {
+        listAliases(call,result);
       }
       else {
         result.notImplemented();
@@ -328,5 +341,143 @@ public class FlutterAliyunPushPlugin implements FlutterPlugin, MethodChannel.Met
     }
   }
 
+  public void bindAccount(@NonNull MethodCall call, @NonNull final MethodChannel.Result result) {
+    Map arguments = call.arguments();
+    String account = (String) arguments.get("account");
+    CloudPushService pushService = PushServiceFactory.getCloudPushService();
+    pushService.bindAccount(account, new CommonCallback() {
+      @Override
+      public void onSuccess(String s) {
+        result.success(s);
+      }
+
+      @Override
+      public void onFailed(String errorCode, String errorMsg) {
+        result.error(errorCode,errorMsg,null);
+      }
+    });
+  }
+
+  public void unbindAccount(@NonNull MethodCall call, @NonNull final MethodChannel.Result result) {
+    CloudPushService pushService = PushServiceFactory.getCloudPushService();
+    pushService.unbindAccount(new CommonCallback() {
+      @Override
+      public void onSuccess(String s) {
+        result.success(s);
+      }
+
+      @Override
+      public void onFailed(String errorCode, String errorMsg) {
+        result.error(errorCode,errorMsg,null);
+      }
+    });
+  }
+
+  public void bindTag(@NonNull MethodCall call, @NonNull final MethodChannel.Result result) {
+    Map arguments = call.arguments();
+    Map params = (Map) arguments.get("params");
+    int target = (int) params.get("target");
+    List<String> tags = (List<String>) params.get("tags");
+    String alias = (String) params.get("alias");
+
+    CloudPushService pushService = PushServiceFactory.getCloudPushService();
+    pushService.bindTag(target, (String[]) tags.toArray(),alias,new CommonCallback() {
+      @Override
+      public void onSuccess(String s) {
+        result.success(s);
+      }
+
+      @Override
+      public void onFailed(String errorCode, String errorMsg) {
+        result.error(errorCode,errorMsg,null);
+      }
+    });
+  }
+
+  public void unbindTag(@NonNull MethodCall call, @NonNull final MethodChannel.Result result) {
+    Map arguments = call.arguments();
+    Map params = (Map) arguments.get("params");
+    int target = (int) params.get("target");
+    List<String> tags = (List<String>) params.get("tags");
+    String alias = (String) params.get("alias");
+
+    CloudPushService pushService = PushServiceFactory.getCloudPushService();
+    pushService.unbindTag(target, (String[]) tags.toArray(),alias,new CommonCallback() {
+      @Override
+      public void onSuccess(String s) {
+        result.success(s);
+      }
+
+      @Override
+      public void onFailed(String errorCode, String errorMsg) {
+        result.error(errorCode,errorMsg,null);
+      }
+    });
+  }
+
+  public void listTags(@NonNull MethodCall call, @NonNull final MethodChannel.Result result) {
+    Map arguments = call.arguments();
+    int target = (int) arguments.get("target");
+    CloudPushService pushService = PushServiceFactory.getCloudPushService();
+    pushService.listTags(target, new CommonCallback() {
+      @Override
+      public void onSuccess(String s) {
+        result.success(s);
+      }
+
+      @Override
+      public void onFailed(String errorCode, String errorMsg) {
+        result.error(errorCode,errorMsg,null);
+      }
+    });
+  }
+
+  public void addAlias(@NonNull MethodCall call, @NonNull final MethodChannel.Result result) {
+    Map arguments = call.arguments();
+    String alias = (String) arguments.get("alias");
+    CloudPushService pushService = PushServiceFactory.getCloudPushService();
+    pushService.addAlias(alias, new CommonCallback() {
+      @Override
+      public void onSuccess(String s) {
+        result.success(s);
+      }
+
+      @Override
+      public void onFailed(String errorCode, String errorMsg) {
+        result.error(errorCode,errorMsg,null);
+      }
+    });
+  }
+
+  public void removeAlias(@NonNull MethodCall call, @NonNull final MethodChannel.Result result) {
+    Map arguments = call.arguments();
+    String alias = (String) arguments.get("alias");
+    CloudPushService pushService = PushServiceFactory.getCloudPushService();
+    pushService.removeAlias(alias, new CommonCallback() {
+      @Override
+      public void onSuccess(String s) {
+        result.success(s);
+      }
+
+      @Override
+      public void onFailed(String errorCode, String errorMsg) {
+        result.error(errorCode,errorMsg,null);
+      }
+    });
+  }
+
+  public void listAliases(@NonNull MethodCall call, @NonNull final MethodChannel.Result result) {
+    CloudPushService pushService = PushServiceFactory.getCloudPushService();
+    pushService.listAliases(new CommonCallback() {
+      @Override
+      public void onSuccess(String s) {
+        result.success(s);
+      }
 
+      @Override
+      public void onFailed(String errorCode, String errorMsg) {
+        result.error(errorCode,errorMsg,null);
+      }
+    });
+  }
 }

+ 7 - 0
example/lib/main.dart

@@ -43,6 +43,11 @@ class _MyAppState extends State<MyApp> {
      setState(() {
        _platformVersion = platformVersion;
      });
+     FlutterAliyunPush.bindAccount("test11111", (success,result) => {
+       setState(() {
+         _platformVersion = success as String;
+       })
+     });
     });
 
     FlutterAliyunPush.reigistOnReceiveNotification((msg){
@@ -67,6 +72,8 @@ class _MyAppState extends State<MyApp> {
     setState(() {
       _platformVersion = platformVersion;
     });
+
+
   }
 
   @override

+ 80 - 0
lib/flutter_aliyun_push.dart

@@ -6,6 +6,7 @@ import 'push_message.dart';
 
 typedef OnReceiveMessage = Function(PushMessage);
 typedef OnReceiveNotification = Function(PushNotification);
+typedef ApiCallback = Function(bool,Object);
 
 class FlutterAliyunPush {
   static const MethodChannel _channel =
@@ -107,6 +108,85 @@ class FlutterAliyunPush {
     onReceiveMessage = callback;
     registCallHandler();
   }
+
+
+
+  //api 相关接口
+  //绑定账号
+  static void bindAccount(String account, ApiCallback callback) {
+    _channel.invokeMethod("bindAccount",account).then((value) => {
+      callback(true,value)
+    }).catchError((e)=>{
+      callback(false,e)
+    });
+  }
+
+  //解绑账号
+  static void unbindAccount(ApiCallback callback) {
+    _channel.invokeMethod("unbindAccount").then((value) => {
+      callback(true,value)
+    }).catchError((e)=>{
+      callback(false,e)
+    });
+  }
+
+  //绑定标签
+  static void bindTag(int target,  List<String> tags, String alias, ApiCallback callback) {
+    var params = {target:target,tags:tags,alias:alias};
+    _channel.invokeMethod("bindTag",params).then((value) => {
+      callback(true,value)
+    }).catchError((e)=>{
+      callback(false,e)
+    });
+  }
+
+  //解绑标签
+  static void unbindTag(int target,  List<String> tags, String alias, ApiCallback callback) {
+    var params = {target:target,tags:tags,alias:alias};
+    _channel.invokeMethod("unbindTag",params).then((value) => {
+      callback(true,value)
+    }).catchError((e)=>{
+      callback(false,e)
+    });
+  }
+
+  //查询标签
+  static void listTags(int target, ApiCallback callback) {
+    _channel.invokeMethod("listTags",target).then((value) => {
+      callback(true,value)
+    }).catchError((e)=>{
+      callback(false,e)
+    });
+  }
+
+
+  //添加别名
+  static void addAlias(String alias, ApiCallback callback) {
+    _channel.invokeMethod("addAlias",alias).then((value) => {
+      callback(true,value)
+    }).catchError((e)=>{
+      callback(false,e)
+    });
+  }
+
+  //删除设备别名。
+  static void removeAlias(String alias, ApiCallback callback) {
+    _channel.invokeMethod("removeAlias",alias).then((value) => {
+      callback(true,value)
+    }).catchError((e)=>{
+      callback(false,e)
+    });
+  }
+
+    //查询设备别名
+    static void listAliases(ApiCallback callback) {
+      _channel.invokeMethod("listAliases").then((value) => {
+        callback(true,value)
+      }).catchError((e)=>{
+        callback(false,e)
+      });
+    }
+
 }
 
 

+ 1 - 1
pubspec.yaml

@@ -1,6 +1,6 @@
 name: flutter_aliyun_push
 description: flutter 阿里云推送,安卓支持厂商推送
-version: 0.0.3
+version: 1.0.0
 homepage: https://github.com/linbing520/flutter_aliyun_push
 
 environment: