Android接入Firebase推送不执行onMessageReceived方法

参考:https://firebase.google.com/docs/cloud-messaging/android/receive
参考:https://firebase.google.com/docs/cloud-messaging/http-server-ref

Android接入Firebase推送,当应用处于后台状态时不执行FirebaseMessagingService的onMessageReceived方法

FCM处理后台应用中消息的机制:

当您的应用位于后台时,Android 会将通知消息转发至系统托盘。默认情况下,用户点击通知时将打开应用启动组件。

这会包括同时包含通知和数据负载的消息。在这些情况下,通知将传递至设备的系统托盘,数据负载将在应用启动组件 Activity 的 Intent 的 extra 中传递。

如果希望打开您的应用和执行特定操作,请在通知负载中设置 click_action,然后将其映射至您想启动的 Activity 中的 Intent 过滤器。例如,将 click_action 设为 FCM_OPEN_ORDER_LIST_ACTIVITY 会触发类似于如下的 Intent 过滤器:

1
2
3
4
<intent-filter>
<action android:name="FCM_OPEN_ORDER_LIST_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

服务端推送notification参数配置click_action字段

1
2
3
4
5
6
7
8
9
10
11
var payload = {
//to: token,
to: '/topics/activity',
notification: {
body: "通知内容",
title: "Firebase Cloud Message",
data: {'type': 'test', 'path': '/order_list'},
click_action: 'FCM_OPEN_ORDER_LIST_ACTIVITY'
},
data: {'type': 'test', 'path': '/order_list', 'content': 'AppBlog.CN'}
}

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :