在 iOS 中,有一个名为
NotificationService
的扩展。这完全是在不同的“目标”中,并在不同的进程中运行到主应用程序的“next”。它无法访问主应用程序的代码。在该服务中,您可以在向用户显示通知之前修改通知。
这与 Android 的方法不同,我可以扩展 FirebaseMessagingService
、覆盖
onMessageReceived
方法并执行任何我想要的操作。我对此方法有一些疑问:
我是否需要显示通知,或者我可以什么都不做而一切继续正常进行?onMessageReceived
title
和
body
)
onMessageReceived
时的情况)
。
FirebaseMessagingService
本身很少会进入销毁状态。
Service
,所以它共享相同的进程。(但您可以在其他进程上运行它)
在典型情况下,只需使用LocalBroadCastReceiver
FirebaseMessagingService
FirebaseMessagingService 有奇怪的行为和限制。
(FirebaseMessagingService
应在
com.google.firebase.iid.FirebaseInstanceIdReceiver
运行的同一进程中运行。)onMessageReceived
@WorkerThread
,这意味着它打算并将在后台线程中调用。FirebaseMessagingService
行为取决于两个条件
A - FirebaseMessagingService 运行进程是前台 B - FCM 有效负载仅包含原始有效负载(没有title
和没有
body
)如果 (B == true) 或 (A == true && B == false) 则始终从 FCM sdk 的私有工作线程调用 onMessageReceived
,并且 FCM SDK 将不会执行任何处理通知的作业。
如果 (A == false && B == false) 则FirebaseMessagingService
按照 FCM 有效负载文档所述自行处理 FCM 有效负载,并且
不会调用
onMessageReceived
。