电容器推送通知或 firebase 消息服务工作者

Mor*_*mon 5 push-notification firebase-cloud-messaging firebase-notifications angular

我很困惑应该在 Angular 14 Ionic 6 Capacitor 4 应用程序中实现哪些包,以便在应用程序用户之间发送和接收通知。我需要能够处理传入的消息:

  • 当应用程序在后台时 -显示可点击的通知(推送到通知托盘是不够的!),这会将应用程序带到前台并根据接收到的数据有效负载进一步路由。
  • 当应用程序位于前台时 - 基于收到的数据有效负载的处理逻辑。

我最初的方法是使用@capacitor/push-notifications来实现,并实现两个监听器:

pushNotificationReceived

pushNotificationActionPerformed
Run Code Online (Sandbox Code Playgroud)

然而,我发现这种方法存在以下缺点:

  1. 在后台 - 消息仅发送到通知托盘 - 不会弹出。
  2. 在后台,应用程序永远不会处理未点击的通知,从而导致重要数据必须改变应用程序状态 - 丢失!
  3. 在前台,现在显示后台急需的气球弹出通知(当实际上不需要显示时)。

然后我遇到了 [firebase/messaging Service Worker][1] 方法。

我还没有实现它,但在我看来,虽然提供了onBackgroundMessage捕获和处理后台通知的方法,但还不够:

  1. 不利用 Android/iOS 提供的本机通知服务
  2. 不显示任何弹出通知,除非我自己实现(?)

此时我有些困惑:

  1. 是否有可能只能同时使用两种方法和包才能满足我的要求?
  2. 两者都可以实现吗?(在这种情况下,我在 initPush() 中的“注册”侦听器注册中注册的相同令牌将同时服务于两者?)
  3. 如果一种方法就足够了 - 是哪种方法,以及如何克服我看来缺少的东西,以满足我的要求?

谢谢你![1]: https: //firebase.google.com/docs/cloud-messaging/js/receive