顾海波

【需求】数据对接

@@ -21,6 +21,16 @@ class EwinMixPushReceiver : MixPushReceiver() { @@ -21,6 +21,16 @@ class EwinMixPushReceiver : MixPushReceiver() {
21 this.invokeListener(MixListenerTypeEnum.ReceiveRegisterResult, platform) 21 this.invokeListener(MixListenerTypeEnum.ReceiveRegisterResult, platform)
22 } 22 }
23 23
  24 + override fun onNotificationMessageArrived(context: Context?, message: MixPushMessage?) {
  25 + message?.run {
  26 + if (isPassThrough){
  27 + this.invokeListener(MixListenerTypeEnum.ReceivePassThroughMessage, message)
  28 + }else{
  29 + this.invokeListener(MixListenerTypeEnum.NotificationMessageArrived, message)
  30 + }
  31 + }
  32 + }
  33 +
24 override fun onNotificationMessageClicked(context: Context, message: MixPushMessage) { 34 override fun onNotificationMessageClicked(context: Context, message: MixPushMessage) {
25 this.invokeListener(MixListenerTypeEnum.NotificationMessageClicked, message) 35 this.invokeListener(MixListenerTypeEnum.NotificationMessageClicked, message)
26 36
1 class MixPushMessageEntity { 1 class MixPushMessageEntity {
2 - final bool? arrivedMessage;  
3 - final String? content;  
4 - final String? description;  
5 - final MixPushMessageExtra? extra;  
6 - final String? messageId;  
7 - final int? messageType;  
8 - final bool? notified;  
9 - final int? notifyId;  
10 - final int? notifyType;  
11 - final int? passThrough; 2 + //通知栏标题,透传该字段为空
12 final String? title; 3 final String? title;
  4 + //通知栏副标题,透传该字段为空
  5 + final String? description;
  6 + //推送所属平台,比如mi/huawei
  7 + final String? platform;
  8 + //推送附属的内容信息
  9 + final String? payload;
  10 + //是否是透传推送
  11 + final bool? passThrough;
  12 + final String? msgId;
13 13
14 - MixPushMessageEntity({  
15 - this.arrivedMessage,  
16 - this.content,  
17 - this.description,  
18 - this.extra,  
19 - this.messageId,  
20 - this.messageType,  
21 - this.notified,  
22 - this.notifyId,  
23 - this.notifyType,  
24 - this.passThrough,  
25 - this.title,  
26 - }); 14 + MixPushMessageEntity(
  15 + {this.title,
  16 + this.description,
  17 + this.platform,
  18 + this.payload,
  19 + this.passThrough,
  20 + this.msgId});
27 21
28 factory MixPushMessageEntity.fromJson(Map<String, dynamic> json) { 22 factory MixPushMessageEntity.fromJson(Map<String, dynamic> json) {
29 return MixPushMessageEntity( 23 return MixPushMessageEntity(
30 - arrivedMessage: json['arrivedMessage'],  
31 - content: json['content'],  
32 - description: json['description'],  
33 - extra: json['extra'] == null  
34 - ? null  
35 - : MixPushMessageExtra.fromJson(json['extra']),  
36 - messageId: json['messageId'],  
37 - messageType: json['messageType'],  
38 - notified: json['notified'],  
39 - notifyId: json['notifyId'],  
40 - notifyType: json['notifyType'],  
41 - passThrough: json['passThrough'],  
42 - title: json['title'],  
43 - ); 24 + title: json['title'],
  25 + description: json['description'],
  26 + platform: json['platform'],
  27 + payload: json['payload'],
  28 + passThrough: json['passThrough'],
  29 + msgId: json['msgId']);
44 } 30 }
45 -  
46 Map<String, dynamic> toJson() => { 31 Map<String, dynamic> toJson() => {
47 - 'arrivedMessage': arrivedMessage,  
48 - 'content': content, 32 + 'title': title,
49 'description': description, 33 'description': description,
50 - 'extra': extra == null ? null : extra!.toJson(),  
51 - 'messageId': messageId,  
52 - 'messageType': messageType,  
53 - 'notified': notified,  
54 - 'notifyId': notifyId,  
55 - 'notifyType': notifyType, 34 + 'platform': platform,
  35 + 'payload': payload,
56 'passThrough': passThrough, 36 'passThrough': passThrough,
57 - 'title': title, 37 + 'msgId': msgId,
58 }; 38 };
59 } 39 }
60 40
61 -class MixPushMessageExtra {  
62 - final String? highPriorityEvent;  
63 - final String? feTs;  
64 - final String? planId;  
65 - final String? source;  
66 - final String? notifyForeground;  
67 - final String? mTs; 41 +class MixPushPlatformEntity {
  42 + final String? platformName;
  43 + final String? regId;
68 44
69 - MixPushMessageExtra({  
70 - this.highPriorityEvent,  
71 - this.feTs,  
72 - this.planId,  
73 - this.source,  
74 - this.notifyForeground,  
75 - this.mTs,  
76 - }); 45 + MixPushPlatformEntity({this.platformName, this.regId});
77 46
78 - factory MixPushMessageExtra.fromJson(Map<String, dynamic> json) {  
79 - return MixPushMessageExtra(  
80 - highPriorityEvent: json['high_priority_event'],  
81 - feTs: json['fe_ts'],  
82 - planId: json['__planId__'],  
83 - source: json['source'],  
84 - notifyForeground: json['notify_foreground'],  
85 - mTs: json['__m_ts'],  
86 - ); 47 + factory MixPushPlatformEntity.fromJson(Map<String, dynamic> json) {
  48 + return MixPushPlatformEntity(
  49 + platformName: json['platformName'], regId: json['regId']);
87 } 50 }
88 51
89 Map<String, dynamic> toJson() => { 52 Map<String, dynamic> toJson() => {
90 - 'high_priority_event': highPriorityEvent,  
91 - 'fe_ts': feTs,  
92 - '__planId__': planId,  
93 - 'source': source,  
94 - 'notify_foreground': notifyForeground,  
95 - '__m_ts': mTs, 53 + 'arrivedMessage': platformName,
  54 + 'content': regId,
96 }; 55 };
97 } 56 }
@@ -27,10 +27,10 @@ class XiaoMiPushPluginListener { @@ -27,10 +27,10 @@ class XiaoMiPushPluginListener {
27 : null; 27 : null;
28 28
29 // 封装回调类型和参数 29 // 封装回调类型和参数
30 - XiaoMixPushListenerTypeEnum? type; 30 + MixPushListenerTypeEnum? type;
31 31
32 // 初始化类型 32 // 初始化类型
33 - for (var item in XiaoMixPushListenerTypeEnum.values) { 33 + for (var item in MixPushListenerTypeEnum.values) {
34 var es = item.toString().split("."); 34 var es = item.toString().split(".");
35 if (es[es.length - 1] == typeStr) { 35 if (es[es.length - 1] == typeStr) {
36 type = item; 36 type = item;
@@ -45,21 +45,21 @@ class XiaoMiPushPluginListener { @@ -45,21 +45,21 @@ class XiaoMiPushPluginListener {
45 45
46 // 回调触发 46 // 回调触发
47 switch (type) { 47 switch (type) {
48 - case XiaoMixPushListenerTypeEnum.RequirePermissions: 48 + case MixPushListenerTypeEnum.RequirePermissions:
49 break; 49 break;
50 - case XiaoMixPushListenerTypeEnum.NotificationMessageClicked: 50 + case MixPushListenerTypeEnum.NotificationMessageClicked:
51 params = MixPushMessageEntity.fromJson(params); 51 params = MixPushMessageEntity.fromJson(params);
52 break; 52 break;
53 - case XiaoMixPushListenerTypeEnum.ReceivePassThroughMessage: 53 + case MixPushListenerTypeEnum.ReceivePassThroughMessage:
54 params = MixPushMessageEntity.fromJson(params); 54 params = MixPushMessageEntity.fromJson(params);
55 break; 55 break;
56 - case XiaoMixPushListenerTypeEnum.CommandResult: 56 + case MixPushListenerTypeEnum.CommandResult:
57 params = MixPushCommandMessageEntity.fromJson(params); 57 params = MixPushCommandMessageEntity.fromJson(params);
58 break; 58 break;
59 - case XiaoMixPushListenerTypeEnum.ReceiveRegisterResult:  
60 - params = MixPushCommandMessageEntity.fromJson(params); 59 + case MixPushListenerTypeEnum.ReceiveRegisterResult:
  60 + params = MixPushPlatformEntity.fromJson(params);
61 break; 61 break;
62 - case XiaoMixPushListenerTypeEnum.NotificationMessageArrived: 62 + case MixPushListenerTypeEnum.NotificationMessageArrived:
63 params = MixPushMessageEntity.fromJson(params); 63 params = MixPushMessageEntity.fromJson(params);
64 break; 64 break;
65 } 65 }
@@ -88,10 +88,10 @@ class XiaoMiPushPluginListener { @@ -88,10 +88,10 @@ class XiaoMiPushPluginListener {
88 88
89 /// 监听器值模型 89 /// 监听器值模型
90 typedef ListenerValue<P> = void Function( 90 typedef ListenerValue<P> = void Function(
91 - XiaoMixPushListenerTypeEnum type, P? params); 91 + MixPushListenerTypeEnum type, P? params);
92 92
93 /// 监听器类型枚举 93 /// 监听器类型枚举
94 -enum XiaoMixPushListenerTypeEnum { 94 +enum MixPushListenerTypeEnum {
95 NotificationMessageClicked, 95 NotificationMessageClicked,
96 RequirePermissions, 96 RequirePermissions,
97 ReceivePassThroughMessage, 97 ReceivePassThroughMessage,