推送 payload 配置

更新时间: 2026/08/03 15:49:51

云信 IM 服务端支持自定义消息的推送配置。

用户在发送消息或者自定义系统通知时,可以通过入参 payload 来自定义推送配置,包括推送标题,消息类型,点击跳转形式、厂商原始参数等。为了集成多家厂商的推送服务,云信限定了 payload 的格式(JSON),当用户按照格式正确填写对应的推送参数后,云信会按厂商规则解析、过滤、补全,并组装成对应请求体,并透传给对应的厂商。

payload 格式填写不正确,可能会导致推送不成功。

本文主要介绍云信 payload 字段的使用说明,并提供各厂商对应的示例代码。

云信 payload 格式

云信的 payload 参数格式如下:

参数类型说明
pushTitle String公用参数,指定推送消息的标题。
apsField JSONAPNs 推送消息中的 aps 参数,可参考 APNs 推送消息示例
pushkitFirst boolean是否优先使用 PushKit 推送(如果没有 PushKit 相关信息,则采用 APNs 推送)。
true:优先使用 PushKit 推送;false:优先使用 APNs 推送。
notifyId int推送通知的消息 ID(标识符),需要为 32 位整数。若 ID 相同,后一条会覆盖前一条通知。
hwPassThroughField JSON华为透传消息中的 Message 参数,可参考 华为透传消息示例
hwField JSON华为通知栏消息中的 message.notification/androidConfig 参数,可参考 华为通知栏消息示例
honorPassThroughField JSON荣耀透传消息中的 Message 参数,可参考 荣耀透传消息示例
honorField JSON荣耀通知栏消息中的 Message.android 参数,可参考 荣耀通知栏消息示例
vivoField JSONvivo 推送消息的请求体参数,可参考 vivo 推送消息示例
oppoField JSONOPPO 推送消息中的 Message 参数,可参考 OPPO 推送消息示例
miField JSON小米推送消息的请求体参数,可参考 小米推送消息示例
mzField JSON魅族推送消息的请求体参数,可参考 魅族推送消息示例
fcmFieldV1 JSON新版谷歌 FCM 推送消息中的 notification 参数,可参考 谷歌 FCM 推送消息示例
harmonyField JSON鸿蒙推送消息中的 Message 参数,可参考 鸿蒙推送消息示例
androidField JSON安卓系统厂商通用推送字段,可参考 安卓系统厂商推送字段

安卓系统厂商通用推送字段

androidField 当前支持的结构如下:

JSON{
  "clickAction": {
    "type": 1,
    "url": "",
    "intentUri": "",
    "intentAction": "",
    "activity": ""
  }
}

其中 type 的映射如下:

厂商 type=1 type=2 type=3
华为 打开应用 打开 URL 打开应用内页或 intent
Honor 打开应用 打开 URL 打开应用内页或 intent
OPPO click_action_type=0 click_action_type=2 click_action_type=1/4/5
vivo skipType=1 skipType=2 skipType=4
魅族 clickType=0 clickType=2 clickType=1
小米 notify_effect=1 notify_effect=3 notify_effect=2
FCM v1 不处理 不处理 intentAction 会映射到 message.android.notification.click_action

云信 payload 示例

云信 payload 示例如下:

JSON{
  "pushTitle": "",
  "notifyId": 12345,
  "apsField": {},
  "hwPassThroughField": {},
  "hwField": {},
  "honorPassThroughField": {},
  "honorField": {},
  "vivoField": {},
  "oppoField": {},
  "miField": {},
  "mzField": {},
  "fcmFieldV1": {},
  "harmonyField": {},
  "androidField": {
    "clickAction": {
      "type": 3,
      "intentAction": "com.netease.demo.ACTION"
    }
  },
  各个推送厂商的自定义透传参数支持以以下方式统一传递,云信会复制到各个厂商的对应自定义透传参数(需要开通开关)
  "key": "value"
}

第三方推送厂商对应的 payload 示例

APNs 推送消息

JSON{
   "pushTitle":"",  // 指定推送消息的标题
   "apsField": {
      "alert" : {
         "title" : "Game Request",
         "subtitle" : "Five Card Draw",
         "body" : "Bob wants to play poker"
      },
      "category" : "GAME_INVITATION"
   }
}

apsField 中的字段说明,详见 APNs 官网文档

小米推送消息

JSON{
    "pushTitle":"",// 推送消息标题
    "miField": {
        // 小米推送的 extra 参数直接以以下方式传递:
        "channel_id":"",//通知类别(Channel)的ID,消息模板绑定的 channel id
        "template_id": "",//消息模板 id
        "template_param": "{\"city\":\"北京\",\"userName\":\"%s\"}",//消息模板参数,值为 JSON 字符串。参数名、参数个数需要与小米侧模板配置保持一致
        "sound":"",//自定义通知栏消息铃声 URI,铃声文件放在 Android app 的 raw 目录下
        "ticker":"",//开启通知消息在状态栏滚动显示
        "notify_foreground":"1",//开启或关闭 app 在前台时的通知弹出,1:弹出,2:不弹出,默认为1
        "notify_effect":"1",//预定义通知栏消息的点击行为。1:通知栏点击后打开app的Launcher Activity,2:通知栏点击后打开app的任一Activity(开发者还需要传入intent_uri),3:通知栏点击后打开网页(开发者还需要传入web_uri)
        "intent_uri":"",
        "web_uri":"",
        "jobkey":"",
        "app_version":"",//可以接收消息的 app 版本号,用逗号分割
        "app_version_not_in":"",//无法接收消息的app版本号,用逗号分割
        "connpt":"",//指定在特定的网络环境下才能接收到消息。目前仅支持指定 wifi
        "only_send_once":"1"//设置为1,表示该仅设备在线时发送一次,不缓存离线消息进行多次下发
    }
}
  • extra 开头的字段说明详见 小米官方文档
  • 由于网易云信默认需占用 2 个 extra 字段用于内部逻辑,因此您最多可再添加 8 个字段(总数上限为 10 个)。

华为推送消息

华为推送消息分类通知栏消息和透传消息,两种类型分别传入 hwPassThroughFieldhwField JSON 字符串来自定配置。

  • 如果一条消息的 payload 中同时包含 hwPassThroughFieldhwField,则该推送会作为透传消息。即 hwPassThroughField 生效,hwField 的字段无效。
  • 其他字段说明详见 华为官方文档

华为通知栏消息

JSON{
    "pushTitle":"",//消息标题
    "hwField": {
        "click_action": { "type": 1},//消息点击行为。type为1:打开应用自定义页面,type为2:点击后打开特定URL,type为3:点击后打开应用
        "badge": {},//Android通知消息角标控制
        "style":0,//通知栏样式
        "androidConfig": {
            "collapse_key":-1,//用户设备离线时,Push 服务器对离线消息缓存机制,默认为-1,详见官方文档 AndroidConfig.collapse_key
            "urgency":"NORMAL",//透传消息投递优先级,详见官方文档AndroidConfig.urgency
            "category":"IM",//标识消息类型,用于标识高优先级透传场景,详见官方文档 AndroidConfig.category
            "data":""//自定义消息负载,详见官方文档AndroidConfig.data
        }
    }
}

华为透传消息

JSON{
    "pushTitle":"",//消息标题
    "hwPassThroughField": {
        "data":"{\"1111\":\"22222\"}",//自定义消息负载,只支持字符串或json格式字符串
        "android": {
            "collapse_key":-1,//用户设备离线时,Push服务器对离线消息缓存机制,默认为-1,详见官方文档AndroidConfig.collapse_key
            "urgency":"NORMAL",//透传消息投递优先级,详见官方文档AndroidConfig.urgency
            "category":"IM",//标识消息类型,用于标识高优先级透传场景,,详见官方文档AndroidConfig.category
        }
    }
}

荣耀推送消息

荣耀推送消息分类通知栏消息和透传消息,两种类型分别传入 honorPassThroughFieldhonorField JSON 字符串来自定配置。

  • 如果一条消息的 payload 中同时包含 honorPassThroughFieldhonorField,则该推送会作为透传消息。即 honorPassThroughField 生效,honorField 的字段无效。
  • 其他字段说明详见 荣耀官方文档

荣耀通知栏消息

JSON{
    "pushTitle":"",  // 消息标题
    "honorField":{  
        "biTag": "biTag001",  // AndroidConfig.biTag
        "data": "",  // AndroidConfig.data
        "notification": {  // AndroidNotification
            "bigBody": "the big body",
            "bigTitle": "the big title",
            "body": "the big body",
            "title": "the big title",
            "buttons": [{
                    "actionType": 0,
                    "data": "",
                    "intent": "",
                    "intentType": 0,
                    "name": "test"
            }],
            "clickAction": {//  消息点击行为
                "action": "",
                "intent": "intent://com.hihonor.codelabpush",
                "type": 1,//1为打开应用自定义页面,2为点击后打开特定URL,3为点击后打开应用
                "url": "https://www.vmall.com"
            },
            "image": "https://res.vmallres.com/SXppnESYv4K11DBxDFc2.png",
            "importance": "NORMAL",
            "style": 0,
            "when": "2014-10-02T15:01:23.045123456Z"
        }
    }
}

荣耀透传消息

JSON{
    "pushTitle":"",  //消息标题
    "honorPassThroughField": {
        "data":"{\"1111\":\"22222\"}",  // message.data
        "android": {
            "biTag":"",  // AndroidCofig.biTag
        }
    }
}

vivo 推送消息

JSON{
    "pushTitle":"",//消息标题
    "vivoField": {
        "skipType":"1",//点击跳转类型 1:打开APP首页 2:打开链接 3:自定义 4:打开app内指定页面,默认为1
        "skipContent":"",//跳转内容,与skipType对应
        "classification":"0",//消息类型 0:运营类消息,1:系统类消息。默认为0
        "networkType":"-1",//网络方式 -1:不限,1:wifi下发送,不填默认为-1
        "pushMode":"0",//推送模式 0:正式推送;1:测试推送,不填默认为0
        "category":"IM" // 二级分类
    }
}

vivoField 中的字段说明,详见 vivo 官方文档

OPPO 推送消息

JSON{
    "pushTitle":"",//消息标题
    "oppoField": {
            "channel_id": "", //指定下发的通道ID
            "private_msg_template_id": "",//OPPO 私信模板 id
            "private_title_parameters": {//标题模板参数
                "city": "北京"
            },
            "private_content_parameters": {//内容模板参数
                "userName": "%s" //昵称占位, %s 会被服务端替换为发送者昵称
            },
            "category":"IM", //通道类别名
            "notify_level": 2, //通知栏消息提醒等级,1-通知栏;2-通知栏+锁屏;16-通知栏+锁屏+横幅+震动+铃声
            "click_action_type": "", //点击通知栏后触发的动作类型。0(默认0.启动应用;1.跳转指定应用内页(action标签名);2.跳转网页;4.跳转指定应用内页(全路径类名);5.跳转Intent scheme URL: "",
            "click_action_activity": "",
            "click_action_url": "",
            "action_parameters": "",
            "style": 1, //通知栏样式
            "sub_title": "", // 子标题
            "network_type": 0, //推送的网络环境类型
    }
}

oppoField 中的字段说明,详见 OPPO 官方文档

魅族推送消息

JSON{
  "pushTitle": "",
  "mzField": {
    "noticeBarInfo": {
      "title": "",
      "content": ""
    },
    "clickTypeInfo": {
      "parameters": {
        "key": "value"
      }
    }
  }
}

mzField 中的字段说明,详见 魅族官方文档

谷歌 FCM 推送消息

使用 FCM HTTP V1 协议推送需要申请 HTTP V1 鉴权证书。当使用该版本证书进行推送时,payload 中应使用 "fcmFieldV1" 字段配置自定义推送参数。服务器会根据用户SDK中配置的证书版本选取推送通道。

FCM HTTP V1 推送的更多信息请参考 官方文档

JSON{
    "fcmFieldV1":{
        "validate_only": true,
        "message": {
          "needNotification": false, // 是否需要自动填充notification字段,默认true,当需要使用数据消息时,此字段需要设置为false
          "notification": {
            "image": "string"
          },
          "data": {
            "name": "wrench",
            "mass": "1.3kg",
            "count": "3" 
          },
          "android": {
            "restricted_package_name": "string",
            "data": {
              "string": "string",
            },
            "notification": {
              "channel_id": "string",
              "color": "string",
            },
            "fcm_options": {
              "analytics_label": "string"
            },
            "direct_boot_ok": true
          }
        }
    }    
}

鸿蒙推送消息

JSON{
    "harmonyField": {
        "payload": {
            "notification": {
                "category": "MARKETING",
                "title": "普通通知标题",
                "body": "普通通知内容",
                "clickAction": {
                    "actionType": 0
                },
                "badge": {
                    "addNum": 1
                },
                "notifyId": 12345
            }
        },
        "pushOptions": {
            "testMessage": true,
            "ttl": 1223
        }
    }
}

harmonyField 中的字段说明,详见 鸿蒙推送官网文档

相关参考文档

更多推送参数说明请参考第三方推送厂商的官方文档:

此文档是否对你有帮助?
有帮助
去反馈
  • 云信 payload 格式
  • 安卓系统厂商通用推送字段
  • 云信 payload 示例
  • 第三方推送厂商对应的 payload 示例
  • APNs 推送消息
  • 小米推送消息
  • 华为推送消息
  • 华为通知栏消息
  • 华为透传消息
  • 荣耀推送消息
  • 荣耀通知栏消息
  • 荣耀透传消息
  • vivo 推送消息
  • OPPO 推送消息
  • 魅族推送消息
  • 谷歌 FCM 推送消息
  • 鸿蒙推送消息
  • 相关参考文档