如何获取自定义数据

How to get custom data

像这样在消息负载中定义的自定义标记数据。

{
    "message": {
        "notification": {
            "title": "message title",
            "body": "message body"
        },
        "android": {
            ...
        },
        "token": [
            "pushtoken1"
        ]
    },
    "custom_data": ...
}

我想从 RemoteMessage 对象中获取这个 custom_data。

public class HmsService extends HmsMessageService {
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);

        // remoteMessage.getCustomData
    }
}

如何编写这个函数?

尝试使用以下代码。

if (remoteMessage.getData().containsKey("custom_data")) {
           remoteMessage.getData().get("custom_data");
}

更新

参考document ,您可以试试下面的示例代码:


华为Push Kit支持两种消息类型:通知消息和数据消息。

根据您发送的数据,您正在使用通知消息。自定义的 Notification 消息数组不能直接发送到应用程序。需要通过ClickAction方式传输数据。

用户自定义的数据可以直接传到Data Messages中的data域,可以用onMessageReceived方式接收。

更多详细信息,您可以参考以下文档:

Sending Downlink Messages

Passing Parameters Through ClickAction

Receiving Messages