onStateChanged property

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

状态变化流

Implementation

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