我从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);
对于某些推送消息,我希望它仅在前台接收,而不是在应用程序在后台运行时接收...... 因此,对于我在后台收到的特定消息,我想忽略它...有可能实现吗?
根据文档:
onMessageReceived 是为大多数消息类型提供的,但以下情况除外:
- 应用在后台运行时发送的通知消息。在这种情况下,通知将传递到设备的系统托盘。默认情况下,用户点击通知会打开应用启动器。
- 具有通知和数据有效负载(后台和前台(的消息。在这种情况下,通知将传递到设备的系统托盘,并且数据有效负载将在启动器活动意图的额外内容中传递。
因此,如果您使用的是通知消息,则无法控制应用程序在后台时的行为,因为它将由系统托盘处理。
我建议您使用 DataPlayload 消息,并在onMessageReceived方法中决定显示通知或忽略它。
您可以在此处阅读更多内容
编辑
如果不清楚,我的意思是在服务器中创建消息时使用仅数据消息而不是使用通知