onTokenRefresh property
设置Token刷新监听器
Implementation
@override
Stream<HuaweiPushToken> get onTokenRefresh {
_tokenStreamController ??= StreamController<HuaweiPushToken>.broadcast(
onListen: () {
_tokenEventChannel.receiveBroadcastStream().listen(
(dynamic event) {
debugPrint('HuaweiPush token stream received raw event: $event');
if (event is Map) {
debugPrint('HuaweiPush token stream event is Map: ${event.runtimeType}');
debugPrint('HuaweiPush token stream event keys: ${event.keys.toList()}');
// 将 Map<Object?, Object?> 转换为 Map<String, dynamic>
final Map<String, dynamic> convertedEvent = Map<String, dynamic>.from(event);
final token = HuaweiPushToken.fromMap(convertedEvent);
debugPrint('HuaweiPush token stream created token: ${token.token}');
_tokenStreamController?.add(token);
} else {
debugPrint('HuaweiPush token stream event is not Map: ${event.runtimeType}');
}
},
onError: (dynamic error) {
debugPrint('HuaweiPush token stream error: $error');
_tokenStreamController?.addError(error);
},
);
},
);
return _tokenStreamController!.stream;
}