push_service.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import 'package:sino_med_cloud/push/push_message.dart';
  2. import '../core/constants/app_enum.dart';
  3. /// 推送服务接口
  4. ///
  5. /// 定义了推送服务的核心功能,包括初始化、别名管理、标签管理和消息监听等
  6. abstract class PushService {
  7. /// 初始化推送服务
  8. ///
  9. /// 在应用启动时调用,用于初始化推送 SDK 和注册事件处理器
  10. ///
  11. /// 抛出异常:
  12. /// - 如果初始化失败,会抛出相应的异常
  13. Future<void> init();
  14. /// 设置用户别名
  15. ///
  16. /// 别名是用于标识用户的唯一标识符,可以用来向特定用户推送消息
  17. ///
  18. /// 参数:
  19. /// - [alias] 用户别名,不能为空
  20. ///
  21. /// 抛出异常:
  22. /// - 如果设置失败,会抛出相应的异常
  23. Future<void> setAlias(String alias);
  24. /// 删除用户别名
  25. ///
  26. /// 删除当前用户已设置的别名
  27. ///
  28. /// 抛出异常:
  29. /// - 如果删除失败,会抛出相应的异常
  30. Future<void> deleteAlias();
  31. /// 添加标签
  32. ///
  33. /// 在原有标签的基础上添加新的标签,用于对用户进行分组推送
  34. ///
  35. /// 参数:
  36. /// - [tags] 要添加的标签列表,不能为空
  37. ///
  38. /// 抛出异常:
  39. /// - 如果添加失败,会抛出相应的异常
  40. Future<void> addTags(List<String> tags);
  41. /// 清空所有标签
  42. ///
  43. /// 删除当前用户的所有标签
  44. ///
  45. /// 抛出异常:
  46. /// - 如果清空失败,会抛出相应的异常
  47. Future<void> cleanTags();
  48. /// 监听推送消息
  49. ///
  50. /// 根据指定的消息类型返回对应的消息流,用于接收推送消息
  51. ///
  52. /// 参数:
  53. /// - [type] 消息类型,可以是:
  54. /// - [PushEventType.receiveNotification] 接收到的通知
  55. /// - [PushEventType.openNotification] 点击打开的通知
  56. /// - [PushEventType.receiveMessage] 接收到的自定义消息
  57. ///
  58. /// 返回:
  59. /// - 返回对应类型的推送消息流
  60. ///
  61. /// 抛出异常:
  62. /// - 如果类型无效,会抛出异常
  63. Stream<PushMessage> onMessage(PushEventType type);
  64. }