1

是否有可能在屏幕顶部显示Firebase系统通知(当应用程序在后台)的弹出窗口?我使用setPriority(Notification.PRIORITY_MAX)来显示前景中来自onMessageReceived的通知。FCM for android:弹出系统通知当应用程序在后台

我使用notificationdata这两个字段,所以我没有权限访问前台收到的通知。我试过设置priorityhigh,并使用通知推送 - 没有任何帮助。

+1

检查文档您查找的行为在这里描述:https://firebase.google.com/docs/cloud-messaging/concept-options –

+0

不可能我猜 –

回答

1

这是通知场只有在使用data唯一有效负载时,您的应用在后台才能处理onMessageReceived中的消息。

在您的有效内容中同时使用notificationdata时,预期的行为是Android系统将在应用程序处于后台时处理通知,而不管您的priority的值是多少。

查看官方文档Handling Android Messages了解更多详情。

+1

谢谢!我只在有效负载中留下了'data'字段,并通过'onMessageReceived'中的'Notification.Builder'显示了自定义通知。首先,我认为这将是不必要的代码,而FCM可以自行显示通知,但后来我发现这种方式更加灵活。 – prcu

0

如果仅在通知发出数据场,你可以处理通知下面的函数内部

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 

    if (remoteMessage.getData().size() > 0) { 
     Log.d(TAG, "Message data payload: " + remoteMessage.getData()); 
    } 

    // Check if message contains a notification payload. 
    if (remoteMessage.getNotification() != null) { 
     Log.d(TAG, "Message Notification Body: " +remoteMessage.getNotification().getBody()); 
    } 

} 

请注意,不包括在该请求

+0

它不是在应用程序在后台调用。来自文档:“当在后台时,应用程序会在通知托盘中收到通知有效内容,并且只在用户点击通知时处理数据有效内容。” – prcu

+0

只发送数据字段。不通知字段。如果两者都发送,FCM将自动显示通知。如果只发送数据字段,它将在onMessageReceived()中收到() –

相关问题