fix:修复Jpush解析服务端消息时出现json格式错误的问题
This commit is contained in:
parent
044990cad5
commit
fdf9c4d448
@ -31,15 +31,38 @@ class MessageManagement {
|
||||
//android解析
|
||||
static Map<String, dynamic> _androidAnalysis(Map<String, dynamic> data) {
|
||||
// {alert: , extras: {cn.jpush.android.TYPE_PLATFORM: 0, cn.jpush.android.CONTENT_TYPE: , cn.jpush.android.MSG_ID: 18101501949885538, cn.jpush.android.EXTRA: {"eventNo":10,"keyId":530,"lockId":7}}, message: }
|
||||
// final Map<Object?, dynamic> extras = data['extras'];
|
||||
// final Map<String, dynamic> extra =
|
||||
// json.decode(extras['cn.jpush.android.EXTRA'] ?? '{}');
|
||||
// return extra;
|
||||
|
||||
final Map<Object?, dynamic> extras = data['extras'];
|
||||
final Map<String, dynamic> extra =
|
||||
json.decode(extras['cn.jpush.android.EXTRA'] ?? '{}');
|
||||
return extra;
|
||||
final extraData = extras['cn.jpush.android.EXTRA'];
|
||||
|
||||
if (extraData is String) {
|
||||
return json.decode(extraData);
|
||||
} else if (extraData is Map) {
|
||||
final Map<String, dynamic> extra = {};
|
||||
extraData.forEach((key, value) {
|
||||
if (value is String && value.startsWith('{') && value.endsWith('}')) {
|
||||
// 处理value是JSON字符串的情况
|
||||
try {
|
||||
extra[key.toString()] = json.decode(value);
|
||||
} catch (e) {
|
||||
extra[key.toString()] = value;
|
||||
}
|
||||
} else {
|
||||
extra[key.toString()] = value;
|
||||
}
|
||||
});
|
||||
return extra;
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
//ios解析
|
||||
//ios解析
|
||||
static Map<String, dynamic> _iosAnalysis(Map<String, dynamic> data) {
|
||||
// {content: , extras: {eventNo: 20, keyId: 580, lockId: 7}, _j_msgid: 18101504271412025}
|
||||
// {content: , extras: {eventNo: 20, keyId: 580, lockId: 7}, _j_msgid: 18101504271412025}
|
||||
final Map<Object?, Object?> extras = data['extras'];
|
||||
final Map<String, dynamic> extra = <String, dynamic>{};
|
||||
extras.forEach((Object? key, Object? value) {
|
||||
@ -48,7 +71,7 @@ class MessageManagement {
|
||||
return extra;
|
||||
}
|
||||
|
||||
//识别参数分发消息
|
||||
//识别参数分发消息
|
||||
static void _shuntingBus(Map<String, dynamic> data) {
|
||||
final int eventNo = data['eventNo'] ?? -1;
|
||||
switch (eventNo) {
|
||||
@ -75,11 +98,11 @@ class MessageManagement {
|
||||
case MessageConstant.lockSetChange:
|
||||
final int keyId = data['keyId'];
|
||||
final int lockId = data['lockId'];
|
||||
// 暂时只用刷新
|
||||
// final Map<Object?, Object?> extra = data['updateFieldList'];
|
||||
// if (extra['appUnlockOnline'] != null) {
|
||||
// final String appUnlockOnline = extra['appUnlockOnline']!.toString();
|
||||
// }
|
||||
// 暂时只用刷新
|
||||
// final Map<Object?, Object?> extra = data['updateFieldList'];
|
||||
// if (extra['appUnlockOnline'] != null) {
|
||||
// final String appUnlockOnline = extra['appUnlockOnline']!.toString();
|
||||
// }
|
||||
eventBus.fire(RefreshLockInfoDataEvent(keyId: keyId, lockId: lockId));
|
||||
break;
|
||||
default:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user