如何在背景应用中获取Firebase组合消息



读取有关云消息的firebase的文档以结合方式,我遇到了在Android设备中获取数据消息的问题。

var payload = {
    notification: {
        title: "Test",
        body: "Test body"
    },
    data: {    
        score: "850",
        close: "635.67"
    }
};

我希望在Android设备中的" OnMessagereceived"中获取数据字段,但我只收到一条通知消息。我试图点击该消息,但我仍然在" OnMessageReceived"上什么也没得到。

我添加了一个意图过滤器来触发主活动,添加" clickAction"(如firebase参考中的引用(和" click_action"(如我在某些问题中看到的那样(在通知有效载荷中,我也得到了相同的功能。

清单

<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@mipmap/ic_launcher" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@color/blue" />

<service
android:name=".connection.TestFirebaseMessagingService">
<intent-filter>
    <action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>

<service
android:name=".connection.TestFirebaseIDService">
<intent-filter>
    <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>

Java代码:

public class FirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "TestFirebase";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    Log.d(TAG, "From: " + remoteMessage.getFrom());
    LogNotification.d(TAG, "NOTIFICATION - From: " + remoteMessage.getFrom());

    // Check if message contains a data payload.
    if (remoteMessage.getData().size() > 0) {
        Log.d(TAG, "Message data payload: " + remoteMessage.getData());
        LogNotification.d(TAG, "NOTIFICATION - Message data payload: " + remoteMessage.getData().toString());
    }
    // Check if message contains a notification payload.
    if (remoteMessage.getNotification() != null) {
        Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
        LogNotification.d(TAG, "NOTIFICATION - Message Notification Body: " + remoteMessage.getData().toString());
    }
}
}

一些技巧?

如果您有有效载荷中的notification键,则该消息将变为通知消息。

当应用在后台时自动显示通知消息。

单击通知时,FCM启动您的主要活动(如果指定click_action(

在活动中,您可以使用getIntent()来获取启动活动的意图。

如果您的活动是由FCM启动的,您将在用于启动活动的意图中找到data有效载荷。

相关内容

  • 没有找到相关文章

最新更新