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()中收到() –

相關問題