我从node.js服务器发送这样的推送通知:
const message = {
android: {
ttl: 3600 * 1000,
notification: {
icon: 'stock_ticker_update',
color: '#f45342',
sound: "notify"
}
},
token: user.deviceToken,
...notification
};
return await adminCli.messaging().send(message);
对于某些推送消息,我希望它仅在前台接收,但是当应用程序在后台运行时不接收... 因此,对于我在后台收到的特定邮件,我想忽略它...实现邮件是否可行?
答案 0 :(得分:1)
根据文档:
onMessageReceived为大多数消息类型提供,但以下情况除外:
- 在后台运行应用程序时发送的通知消息。在这种情况下,通知将传递到设备的系统托盘。用户点击通知会默认打开应用启动器。
- 同时具有通知和数据有效载荷(后台和前台)的邮件。在这种情况下,通知会传递到设备的系统托盘,数据有效载荷会在启动器活动的意图之外传递。
因此,如果您使用的是NotificationMessages,则无法控制应用程序在后台运行时的行为,因为它将由系统任务栏处理。
我建议您使用DataPlayload消息,并在 onMessageReceived 方法中决定显示通知还是忽略通知。
您可以阅读更多here
如果不清楚,我的意思是在服务器中创建消息时使用仅数据消息,而不使用通知