繁体   English   中英

华为Push Kit in Android:发送通知消息和数据消息

[英]Huawei Push Kit in Android : Send notification message and data message

我在 Android 看到了华为 Push Kit 的工作原理。为此,我使用 postman 发送通知,我正在发送一条通知消息和一条数据消息。 在通知区可以看到通知消息,但是我无法获取我在数据消息中发送的数据。 我想知道当应用程序处于前台和后台时如何同时获取它们。

在此处输入图像描述

  1. HMS Core Push Kit 和 FCM 之间存在差异。 使用HMS Core Push Kit时,通知消息会投递到系统托盘,数据消息会默认投递到onMessageReceived方法。 因此无法获取通知消息标题和正文。

如果您想在发送通知消息时将数据传递给您的应用程序,您可以点击通知消息以触发相应的操作,例如打开应用程序、网页或应用程序中的特定页面。 要通过自定义操作获取数据,请参阅docs

  1. 有关数据消息参数,请参阅:
{
    "validate_only": false,
    "message": {
        "data": "{'param1':'value1','param2':'value2'}",
        "token": [
            "pushtoken1",
            "pushtoken2"
        ]
    }
}

并使用 onMessageReceived() 方法获取数据。

您必须包含 "foreground_show": false 才能将消息 "data" 有效负载传送到 "onMessageReceived" .. 否则它只会显示在通知区域中.. 而您将无法读取有效负载..

https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/android-basic-receivemsg-0000001087370610-V5

阅读上述文档中的“接收通知消息”标题

当您发送推送通知而没有明确设置*message.android.notification.foreground_show = **false***的值时,数据内容将不会被读取,因为 NC(华为手机的通知中心)负责通知(当您的应用程序在前台运行时)。

NC没有实现华为这里所说的读取数据内容的方法。

因此,您必须指示您的应用程序,以便您的应用程序处理推送通知而不是 NC。 为此,您必须:

  • 有效负载中的message.android.notification.foreground_show = false (参见此处
  • 您需要在应用的AndroidManifest.xml文件中声明HmsMessageService的实现class(参见这里)。

在这里您可以找到有关下行链路消息有效负载的所有详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM