push_manager.dart 895 B

123456789101112131415161718192021222324252627282930313233
  1. import 'package:sino_med_cloud/core/constants/app_enum.dart';
  2. import 'package:sino_med_cloud/push/push_message.dart';
  3. import 'package:sino_med_cloud/push/push_service.dart';
  4. import 'jpush_service.dart';
  5. /// 对外统一入口(业务只用这个)
  6. class PushManager {
  7. PushManager._internal();
  8. static final PushManager instance = PushManager._internal();
  9. late final PushService _service;
  10. void init() {
  11. _service = JPushService();
  12. _service.init();
  13. }
  14. Stream<PushMessage> onReceive() => _service.onMessage(PushEventType.receiveNotification);
  15. Stream<PushMessage> onOpen() => _service.onMessage(PushEventType.openNotification);
  16. Stream<PushMessage> onMessage() => _service.onMessage(PushEventType.receiveMessage);
  17. Future<void> bindUser(String userId) {
  18. return _service.setAlias(userId);
  19. }
  20. Future<void> unbindUser() {
  21. return _service.deleteAlias();
  22. }
  23. }