onStateChanged property
状态变化流
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');
}
});
}