我正在使用
在
FirebaseMessagingService
处理推送通知。在应用中,它能够正常工作。当调用 onMessageReceived
时,我可以获取通知标题和正文以及数据负载,并根据负载数据向我的 Activity
发送反应,使用 LocalBroadcastManager
。
但是,后台推送通知存在问题。这只会在后台显示通知,但如果应用程序在后台,则不会在 onMessageReceived
中创建此函数,因为无法调用此函数。
根据文档,推送通知的数据部分存储在 extras
中,并且可以在 Activity 恢复时找到。我已经有了这个功能并且它可以工作。但问题是我没有标题和消息,因为它没有发送到 onMessageReceived
,我无法捕获此信息。
是否有任何方法可以获取它?因为我需要在应用程序内的对话框窗口中显示它。推送通知不仅是文本和标题,而且不仅仅是用户的信息,而且还将执行某些操作。
在 FirebaseMessagingService
中接收通知标题、正文和负载:
override fun onMessageReceived(msg: RemoteMessage?) {
val pNotification = msg?.notification
val payload = msg?.data
if (pNotification != null){
val ntitle = pNotification.title
val nMsg = pNotification.body
}
//working with payload - creating notification and Intent for LocalBroadcastmanager
}
在
onResume()
中获取extras中的有效载荷。private fun maybeFindBackgroundPayload(extras: Bundle?){
if (extras != null){
extras.keySet().forEach { key->
val keyValue = extras[key]
App.log("BackgroundKeyValues: $keyValue")
if (key.equals("gcm.notification.body", ignoreCase = true) && keyValue != null){
...
//Working with payload data key value - dont have title and body
}
}
}
}