onStateChanged property

  1. @override
Stream<Map<String, dynamic>> get onStateChanged
override

状态变化流

Implementation

@override
Stream<Map<String, dynamic>> get onStateChanged {
  safeLog('📡 [MethodChannel] 设置 onStateChanged 事件流监听');
  return stateEventChannel
      .receiveBroadcastStream('inapp_purchase/state_events')
      .map((event) {
        safeLog('📨 [MethodChannel] 收到状态变化事件: $event');
        if (event is Map) {
          // 使用 _deepConvertMap 递归转换嵌套的 Map,确保所有字段都被正确转换
          try {
            return _deepConvertMap(event);
          } catch (e) {
            safeLog('⚠️ [MethodChannel] onStateChanged 转换Map失败: $e,使用简单转换');
            // 如果转换失败,尝试使用简单转换
            return event.map((key, value) => MapEntry(key.toString(), value));
          }
        } else {
          throw StateError('Received event is not a Map: $event');
        }
      });
}