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