如何仅在前台发送推送通知

时间:2018-09-02 14:00:36

标签: android node.js firebase push-notification firebase-cloud-messaging

我从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);

对于某些推送消息,我希望它仅在前台接收,但是当应用程序在后台运行时不接收... 因此,对于我在后台收到的特定邮件,我想忽略它...实现邮件是否可行?

1 个答案:

答案 0 :(得分:1)

根据文档:

  

onMessageReceived为大多数消息类型提供,但以下情况除外:

     
      
  • 在后台运行应用程序时发送的通知消息。在这种情况下,通知将传递到设备的系统托盘。用户点击通知会默认打开应用启动器。
  •   
  • 同时具有通知和数据有效载荷(后台和前台)的邮件。在这种情况下,通知会传递到设备的系统托盘,数据有效载荷会在启动器活动的意图之外传递。
  •   

因此,如果您使用的是NotificationMessages,则无法控制应用程序在后台运行时的行为,因为它将由系统任务栏处理。

我建议您使用DataPlayload消息,并在 onMessageReceived 方法中决定显示通知还是忽略通知。

您可以阅读更多here

编辑

如果不清楚,我的意思是在服务器中创建消息时使用仅数据消息,而不使用通知

相关问题