是否有可能在屏幕頂部顯示Firebase系統通知(當應用程序在後臺)的彈出窗口?我使用setPriority(Notification.PRIORITY_MAX)
來顯示前景中來自onMessageReceived
的通知。FCM for android:彈出系統通知當應用程序在後臺
我使用notification
和data
這兩個字段,所以我沒有權限訪問前臺收到的通知。我試過設置priority
到high
,並使用通知推送 - 沒有任何幫助。
是否有可能在屏幕頂部顯示Firebase系統通知(當應用程序在後臺)的彈出窗口?我使用setPriority(Notification.PRIORITY_MAX)
來顯示前景中來自onMessageReceived
的通知。FCM for android:彈出系統通知當應用程序在後臺
我使用notification
和data
這兩個字段,所以我沒有權限訪問前臺收到的通知。我試過設置priority
到high
,並使用通知推送 - 沒有任何幫助。
這是通知場只有在使用data
唯一有效負載時,您的應用在後臺才能處理onMessageReceived
中的消息。
在您的有效內容中同時使用notification
和data
時,預期的行爲是Android系統將在應用程序處於後臺時處理通知,而不管您的priority
的值是多少。
查看官方文檔Handling Android Messages瞭解更多詳情。
謝謝!我只在有效負載中留下了'data'字段,並通過'onMessageReceived'中的'Notification.Builder'顯示了自定義通知。首先,我認爲這將是不必要的代碼,而FCM可以自行顯示通知,但後來我發現這種方式更加靈活。 – prcu
如果僅在通知發出數據場,你可以處理通知下面的函數內部
@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());
}
}
請注意,不包括在該請求
它不是在應用程序在後臺調用。來自文檔:「當在後臺時,應用程序會在通知托盤中收到通知有效內容,並且只在用戶點擊通知時處理數據有效內容。」 – prcu
只發送數據字段。不通知字段。如果兩者都發送,FCM將自動顯示通知。如果只發送數據字段,它將在onMessageReceived()中收到() –
檢查文檔您查找的行爲在這裏描述:https://firebase.google.com/docs/cloud-messaging/concept-options –
不可能我猜 –