push_message.dart 990 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import 'package:json_annotation/json_annotation.dart';
  2. part 'push_message.g.dart';
  3. /// 推送消息模型
  4. @JsonSerializable(createFactory: false)
  5. class PushMessage {
  6. final String? title;
  7. final String? content;
  8. @JsonKey(defaultValue: {})
  9. final Map<String, dynamic> extras;
  10. PushMessage({
  11. this.title,
  12. this.content,
  13. required this.extras,
  14. });
  15. /// 从 JSON 创建 PushMessage
  16. /// 支持 'alert' 或 'content' 字段作为内容
  17. factory PushMessage.fromJson(Map<String, dynamic> json) {
  18. // 处理 content 字段:优先使用 'alert',如果没有则使用 'content'
  19. final content = json['alert'] ?? json['content'];
  20. return PushMessage(
  21. title: json['title'] as String?,
  22. content: content as String?,
  23. extras: json['extras'] != null
  24. ? Map<String, dynamic>.from(json['extras'] as Map)
  25. : <String, dynamic>{},
  26. );
  27. }
  28. /// 转换为 JSON
  29. Map<String, dynamic> toJson() => _$PushMessageToJson(this);
  30. }