onTokenRefresh property

  1. @override
Stream<HuaweiPushToken> get onTokenRefresh
override

设置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;
}