fix: 处理厂商平台有时候获取到registrationId和token为空的情况

This commit is contained in:
Liuyf 2025-02-25 11:31:36 +08:00
parent 1c74b54cd4
commit c6dce9eb00

View File

@ -83,12 +83,16 @@ class XSJPushProvider {
final int cmdCode = data['cmd'];
switch (cmdCode) {
case CMD_GET_REGISTRATION_ID:
await Storage.setString(pushDeviceID, data['message']);
AppLog.log('flutter get registration id : ${data['message']}');
_jpushRegistrationIdCompleter.complete(<String, dynamic>{
'channel': 'jiguang',
'channelToken': data['message']
});
if (!_jpushRegistrationIdCompleter.isCompleted &&
data['message'] != null) {
await Storage.setString(pushDeviceID, data['message']);
AppLog.log('flutter get registration id : ${data['message']}');
_jpushRegistrationIdCompleter.complete(<String, dynamic>{
'channel': 'jiguang',
'channelToken': data['message']
});
}
// final String? channel2TokenStr =
// await Storage.getString(vendorPushChannelInfo);
// if (Platform.isAndroid && channel2TokenStr != null) {
@ -96,13 +100,15 @@ class XSJPushProvider {
// }
break;
case CMD_GET_TOKEN:
final Map<String, dynamic> channel2Token = <String, dynamic>{
'channel': channelTypeMapping[data['platform']],
'channelToken': data['token']
};
await Storage.setString(
vendorPushChannelInfo, jsonEncode(channel2Token));
_vendorTokenCompleter.complete(channel2Token);
if (!_vendorTokenCompleter.isCompleted && data['token'] != null) {
final Map<String, dynamic> channel2Token = <String, dynamic>{
'channel': channelTypeMapping[data['platform']],
'channelToken': data['token']
};
await Storage.setString(
vendorPushChannelInfo, jsonEncode(channel2Token));
_vendorTokenCompleter.complete(channel2Token);
}
break;
}
},