推送消息字段解释

本文主要介绍推送消息结构和字段,建议按需配置。一般基础推送配置有默认值。默认特殊推送配置会覆盖基础推送配置。

{  
  //基础推送配置。
  "title": "您有一条新消息",
  "subTitle": "",
  "content": "请及时查看",
  "ext": {},
  
  //特殊推送配置。
  "easemob":{},
  "apns": {},
  "fcm": {},
  "huawei": {},
  "meizu": {},
  "oppo": {},
  "vivo": {},
  "xiaomi": {}
}
字段 是否必需类型字段说明
title 必需 string推送显示标题,默认为“您有一条新消息”。该字段长度不能超过 32 字符(一个汉字等于两个字符)。
subTitle非必需 string推送显示子标题。该字段长度不能超过 10 字符。
content 必需 string推送显示内容,默认为“请及时查看”。该字段长度不能超过 100 字符(一个汉字等于两个字符)。
ext 非必需 object推送自定义扩展键值。
config 非必需 object推送自定义特性。详见:config
easemob 非必需 objecteasemob 推送特性。详见:Easemob 推送特性
apns 非必需 objectAPNs 推送特性。详见:APNs 推送特性
fcm 非必需 objectFCM 推送特性。详见:FCM 推送特性
xiaomi 非必需 object小米推送特性。详见:小米推送特性
vivo 非必需 objectVivo 推送特性。详见:Vivo 推送特性
oppo 非必需 objectOppo 推送特性。详见:Oppo 推送特性
meizu 非必需 objectMeizu 推送特性。详见:Meizu 推送特性
huawei 非必需 objectHuawei 推送特性。详见:Huawei 推送特性

config

字段 是否必需类型字段说明 支持平台
clickAction非必需 object推送点击行为, 详见:clickActioniOS&Android
badge 非必需 object推送角标,详见:badgeiOS&Android
timeToLive 非必需 long 离线消息保留时长,单位为秒(s),默认为 86,400 秒。 iOS&Android

clickAction

字段 是否必需类型字段说明 支持平台
url 非必需 string推送点击,打开 URL。 iOS&Android
action 非必需 string推送点击,打开 action。iOS&Android
activity非必需 string推送点击,activity。 iOS&Android

badge

字段 是否必需类型 字段说明 支持平台
addNum 非必需 integer推送角标,自增。 iOS&Android
setNum 非必需 integer推送角标,覆盖。 iOS&Android
activity非必需 string 推送角标,入口类(华为角标需要配置)。iOS&Android

Easemob 推送说明

大图片显示:

{
    "style":2,
    "bigPicture":"xxx"
}

推送字段说明:

字段 类型 字段说明 支持平台
title string 通知栏消息标题。 iOS&Android
content string 通知栏消息内容。 iOS&Android
subTitle string 推送展示子标题。 iOS
iconUrl string 图标的 URL。 iOS&Android
needNotification boolean 是否弹出通知。默认true。
- true:通知消息;
- false:透传消息。
iOS&Android
badge object 点击操作,详见: badge iOS&Android
operation object 点击操作,详见: easemob.operation iOS&Android
channelId string 通知渠道 ID,默认:chat。客户端通道存在则通知。客户端通道不存在,则结合 channelName,channelLevel 创建新通道。 Android
channelName string 通知渠道名称,默认:消息。只有第一次创建通道时使用。 Android
channelLevelinteger通知级别,只有第一次创建通道时使用。
- 0:最低,
- 3:默认,
- 4:高。
Android
autoCancel integer点击通知后是否自动关闭。
- 0:不取消;
- (默认)1:取消。
Android
expiresTime long 过期时间戳,默认不过期,过期通知不再展示。 iOS&Android
sound integer声音提醒。
- (默认)0:无声音,
- 1:声音提醒。
iOS&Android
vibrate integer振动提醒。
- (默认)0:无振动;
- 1:振动提醒。
iOS&Android
style integer展示样式。
-(默认)0:普通样式;
- 1:大文本样式;
- 2:大图片样式。
iOS&Android
bigTxt string 大文本内容,当大文本样式时,需要填写大文本具体内容。 iOS&Android
bigPicture string 大图片 URL,当大图片样式时,需要填写大图片 URL。 Android
id long 通知 ID,默认:随机。当 ID 相同时,通知会覆盖相同 ID 的通知。 iOS&Android

easemob.operation

字段 类型 字段说明 支持平台
type integer点击类型。
- (默认)0:启动应用;
- 1:打开 url;
- 2:打开应用指定页。
iOS/Android
openUrl string 点击打开 URL,不填点击无效果。 iOS/Android
openActionstring 点击打开动作,在打开其他应用时会用到。 Android

APNs 推送说明

字段 类型 字段说明
invalidationTimeinteger 推送过期时间间隔(ms)。
priority integer 推送优先级。
- 5:立即;
- 10:省电)。
pushType string 推送类型(alert,VOIP 等) 。
collapseId string 推送折叠 ID。
apnsId uuid 推送标示。
badge integer 角标。
sound string 铃声 (默认:default)。
mutableContent bool 是否向推送中增加 mutable-content 字段开启 APNs 通知扩展。
- true:是;
- false:否。
contentAvailablebool 是否配置后台更新通知。开启后系统会在后台唤醒您的应用程序,并将通知传递。
- true:是;
- false:否。
categoryName string 通知的类型。
threadId string 分组通知的特定于应用程序的标识符。
title string 推送显示标题。
subTitle string 推送显示子标题。
content string 推送显示内容。
titleLocKey string 推送显示国际化支持。
titleLocArgs list推送显示国际化支持。
subTitleLocKey string 推送显示国际化支持。
subTitleLocArgs list推送显示国际化支持。
bodyLocKey string 推送显示国际化支持。
bodyLocArgs list推送显示国际化支持。
ext object 自定义推送扩展。
launchImage string 当用户点击操作按钮或移动操作滑块时,该图像用作启动图像。

FCM 推送说明

字段 类型 字段说明
condition string指定消息目标的逻辑条件表达式。
collapseKey string折叠键。
priority string优先级 (normal/high)。
timeToLive string离线消息保留时长(秒)。
dryRun bool 是否为测试消息,实际不会下发。
- true:是;
- false:否。
restrictedPackageNamestring指定应用的软件包名称,其注册令牌必须匹配才能接收消息。
data object自定义推送扩展。
notification object推送显示相关内容

fcm.notification

字段 类型 字段说明
title string 通知栏消息的标题。
body string 通知栏消息内容。
androidChannelIdstring 通知的通道 ID。
icon string 通知图标。
sound string 通知铃声。
tag string 用于替换抽屉式通知栏中现有通知的标识符。
color string 通知的图标颜色。
clickAction string 点击相关的操作。点击通知时,将会启动带有匹配 intent 过滤器的 Activity。
titleLocKey string 推送显示国际化支持。标题本地化 key。
titleLocArgs list推送显示国际化支持。标题本地化参数。
bodyLocKey string 推送显示国际化支持。内容本地化 key。
bodyLocArgs list推送显示国际化支持。内容本地化参数。

小米推送说明

自定义通道和跳转。

{
    "title":"你好,欢迎使用环信",
    "content":"你好",
    "channelId":"easemob-test",
    "notifyEffect":3,
    "webUri":"http://www.easemob.com"
}

推送字段说明:

字段 类型 字段说明
title string 通知栏消息标题。该字段长度不能超过 50 字符(一个汉字等于一个字符)。
description string 通知栏消息内容。该字段长度不能超过 128 字符(一个汉字等于一个字符)。
restrictedPackageNamesstring 应用包名。
passThrough integer
- 0:表示通知栏消息;
- 1:表示透传消息。
payload object 消息的内容。
notifyType integer通知方式。
- -1:默认全部;
- 1:使用默认提示音提示;
- 2:使用默认振动提示;
- 4:使用默认 led 灯光提示。
timeToLive long 离线保留时长(单位为毫秒)。
timeToSend long 定时发送消息。用自 1970 年 1 月 1 日以来 00:00:00.0 UTC 时间表示。
notifyId integer相同 notify_id 的通知栏消息会覆盖之前。
sound string 铃声,例:"android.resource://" + PACKAGENAME + "/raw/shaking"
ticker string 开启通知消息在状态栏滚动显示。
notifyForeground string 开启或关闭 app 在前台时的通知弹出。
- 0:开启;
- 1:关闭。
notifyEffect string 预定义通知栏消息的点击行为。通过设置 extra.notify_effect 的值以得到不同的预定义点击行为。
- 1:通知栏点击后打开 app 的 Launcher Activity;
- 2:通知栏点击后打开 app 的任一 Activity(intentUri);
- 3:通知栏点击后打开网页(webUri)。
intentUri string 当前 app 的组件。
webUri string 网页。
flowControl integer控制是否需要进行平缓发送。
jobkey string 消息聚合,相同 jobkey 的消息只展示第一条。
callbackUrl string 回调地址。
callbackParam string 回调参数。
callbackType integer回调类型:
- 1:送达;
- 2:点击;
- 3:送达或点击;
- 16:设备无效;
- 32:禁用 PUSH;
- 64:不符合过滤条件;
- 128:推送超限;
- 1024:TTL 过期。
locale string 可以接收消息的设备的语言范围,用逗号分隔。
localeNotIn string 不可以接收消息的设备的语言范围,用逗号分隔。
model string 可以收到消息的设备的机型/品牌/价格范围。
modelNotIn string 不可以收到消息的设备的机型/品牌/价格范围。
appVersion string 可以接收消息的 app 版本号。
appVersionNotIn string 不可以接收消息的 app 版本号。
connpt string 特定的网络环境下才能接收到消息。目前仅支持指定 ”wifi”。
onlySendOnce string
- 1:消息仅在设备在线时发送一次,不缓存离线消息进行多次下发。
channelId string 通知类别的 ID。

Vivo推送说明

系统消息,回执和打开网页。

{
    "classification": 1,
    "extra": {
      "callback": "http://www.easemob.com/callback",
      "callbackParam": "test psuh callback"
    },
    "skipContent": "http://www.easemob.com",
    "skipType": 2
  }

推送字段说明:

字段 类型 字段说明
title string 通知栏消息标题。该字段长度不能超过 40 字符(一个汉字等于两个字符)。
content string 通知栏消息内容。 该字段长度不能超过 100 字符(一个汉字等于两个字符)。
notifyType integer通知类型。
- 1:无;
- 2:响铃;
- 3:振动;
- 4:响铃和振动。
timeToLive integer消息保留时长(单位:秒)。
skipType integer点击跳转类型。
- 1:打开APP首页;
- 2:打开链接;
- 3:自定义;
- 4:打开 app 内指定页面。
skipContent string 跳转内容。跳转类型为 2 时,跳转内容最大 1000 个字符。
networkType integer网络方式。
- (默认)-1:不限;
- 1:Wi-Fi 下发送。
classification integer消息类型。
- (默认)0:运营类消息;
- 1:系统类消息。
clientCustomMapobject 客户端自定义键值对。
requestId string 用户请求唯一标识,长度限制为 64 字符。
pushMode integer推送模式。
- (默认)0:正式推送;
- 1:测试推送。
extra object 推送回调

vivo.extra

字段 类型 字段说明
callback string回调 URL, 长度限制为 128 字符。
callbackParamstring回调参数,长度限制为 64 字符。

Oppo 推送说明

标题和跳转:

{
    "title":"你好,欢迎使用环信推送",
    "subTitle":"你好",
    "content":"你好先生",
    "channelId":"easemob-channel",
    "clickActionType":2,
    "clickActionUrl":"http://www.easemob.com"
}

推送字段说明:

字段 类型 字段说明
title string 通知栏消息标题。该字段长度不能超过 32 字符(一个汉字等于一个字符)。
subTitle string 通知栏消息子标题。
content string 推送显示内容。 该字段长度不能超过 200 字符(一个汉字等于一个字符)。
channelId string 通道 ID。
appMessageId string 同一 message id 只推一次。
style integer通知栏样式。
- 1:标准;
- 2:长文本;
- 3:大图。
clickActionType integer点击动作类型。
- 0:启动应用;
- 1:打开应用内页(activity的intent action);
- 2:打开网页;
- 4:打开应用内页(activity);
- 5:Intent scheme URL。
clickActionActivitystring 应用内页地址【click_action_type14 时必填,长度限制为 500 字符】
clickActionUrl string 网页地址【click_action_type25 时必填,长度限制为 500 字符】
actionParameters object 动作参数,打开应用内页或网页时传递给应用或网页。
offLine bool 是否进离线消息。
- true:是;
- false:否。
offLineTtl integer离线消息保存时长 (单位为秒) 。
timeZone string 时区(GMT+08:00)。
callBackUrl string 回调地址。
callBackParameter string 回调参数。
showTtl integer限时展示(秒) 。
notifyId integer通知显示时的唯一标识,实现新的消息覆盖上一条消息功能。

魅族推送说明

字段 类型 字段说明
title string 通知栏消息标题。该字段长度不能超过 32 字符(一个汉字等于一个字符)。
content string 通知栏消息内容。该字段长度不能超过 100 字符(一个汉字等于一个字符)。
noticeExpandType integer展开方式。
- 0:禁用;
- 1:文本。
noticeExpandContentstring 展开内容【noticeExpandType 为文本时,必填】。
clickType integer点击动作。
- 0:打开应用;
- 1:打开应用页面;
- 2:打开 H5 地址;
- 3:应用客户端自定义。
url string H5 页面地址。
parameters object 参数。
activity string 应用页面地址。
customAttribute string 应用客户端自定义内容。
isOffLine bool 是否进离线消息。
- true:是;
- false:否。
validTime integer有效时长(小时)。
isSuspend bool 是否通知栏悬浮窗显示。
- true:是;
- false:否。
isClearNoticeBar bool 是否可清除通知栏。
- true:是;
- false:否。
isFixDisplay bool 是否定时展示。
- true:是;
- false:否。
fixStartDisplayDatedate 定时展示开始时间。
fixEndDisplayDate date 定时展示结束时间。
vibrate bool 通知方式:是否振动。
- true:是;
- false:否。
lights bool 通知方式:是否闪光。
- true:是;
- false:否。
sound bool 通知方式:是否有声音。
- true:是;
- false:否。
notifyKey string 分组合并推送的 key,凡是带有此 key 的通知栏消息只会显示最后到达的一条。
callback string 回调 url, 长度限制 128 字符。
callbackParam string 回调参数,长度限制 64 字符。
callbackType string int(可选字段),回执类型。
- 1:送达回执;
- 2:点击回执;
- (默认)3:送达与点击回执。

华为推送说明

华为自定义铃声样例:

{
    "message":{
        "android":{
            "notification":{
                "title":"wx1994发来新消息3",
                "body":"联系人发来新消息",
                "channelId":"hyphenate_offline_push_notification",
                "defaultSound":false,
                "sound":"/raw/ring",
                "importance":"NORMAL"
            }
        }
    }
}
字段 类型 字段说明
validateOnlybool 是否为测试消息,实际不会下发。
- true:是;
- false:否。
message object推送消息结构体
review object第三方审核机构审核结果,具体请参考华为官网Review的定义。

huawei.message

推送消息结构体:

字段 类型 字段说明
data object自定义消息负载。
notificationobject通知栏消息内容
android object安卓消息推送控制参数
huawei.message.notification

通知栏消息内容:

字段 类型 字段说明
titlestring通知栏消息的标题。
body string通知栏消息的内容。
imagestring用户自定义的通知栏消息右侧大图标 URL。
huawei.message.android

安卓消息推送控制参数:

字段 类型 字段说明
collapseKey integer离线消息缓存分组标识。
urgency string 透传消息投递优先级。
category string 用于重要优先级的透传消息发送场景标识。
ttl string 消息缓存时间(单位为秒)。
biTag string 批量任务消息标识。
fastAppTargetTypeinteger快应用发送透传消息时,指定小程序的模式类型。
- 1:开发态;
- (默认)2:生产态。
data string 自定义消息负载,此处如果设置了 data,则会覆盖 message.data 字段。
notification object 安卓通知栏消息结构体
huawei.message.android.notification

安卓通知栏消息结构体:

字段 类型 字段说明
title string 安卓通知栏消息标题。
body string 安卓通知栏消息内容。
icon string 自定义通知栏左侧小图标,本地的 /res/raw/,支持的文件格式目前包括 png、jpg。
color string 自定义通知栏按钮颜色。
sound string 自定义消息通知铃声,在新创建渠道时有效,此处设置的铃声文件必须存放在应用的/res/raw路径下,例如设置为“/raw/shake”,对应应用本地的/res/raw/shake.xxx文件,支持的文件格式包括mp3、wav、mpeg等,如果不设置使用默认系统铃声。注意:由于铃声是通知渠道的属性,因此铃声仅在渠道创建时有效,渠道创建后,即使设置自定义铃声也不会播放,而使用创建渠道时设置的铃声。
defaultSound bool 默认铃声控制开关。
- true:打开;
- false:关闭。
tag string 消息标签,同一应用下使用同一个消息标签的消息会相互覆盖,只展示最新的一条。
clickAction object 消息点击行为
bodyLocKey string 通知显示本地化。
bodyLocArgs List<string>
titleLocKey string 标题本地化 key。
titleLocArgs List<string>
multiLangKey List<string>消息国际化多语言参数。
channelId string 通道 ID。
notifySummary string 安卓通知栏消息简要描述。
image string 自定义的安卓通知栏消息右侧大图标 URL。
style integer 通知栏样式:
- 0:默认样式;
- 1:大文本样式;
- 3:Inbox样式。
bigTitle string 安卓通知栏消息大文本标题。
bigBody string 安卓通知栏消息大文本内容。
autoClear integer 消息展示时长,超过后自动清除,单位为毫秒。
notifyId integer 每条消息在通知显示时的唯一标识。实现新的通知栏消息覆盖老的。
group string 消息分组,将同一组的消息只显示 1 条。
badge object 安卓通知消息角标控制
autoCancel bool 安卓通知栏消息保持标识,在点击通知栏消息后,消息是否不显示在通知栏。
- true:是;
- false:否。
when string 消息的排序时间,安卓通知栏消息根据这个值将消息排序,同时这个时间在通知栏上显示。样例:2014-10-02T15:01:23.045123456Z
importance string Android通知消息分类,决定用户设备消息通知行为,取值如下:
- LOW:资讯营销类消息;
- NORMAL:服务与通讯类消息。
useDefaultVibratebool 是否使用系统默认振动模式控制开关。
- true:是;
- false:否。
useDefaultLight bool 是否使用默认呼吸灯模式控制开关。
- true:是;
- false:否。
vibrateConfig string 安卓自定义通知消息振动模式,每个数组元素按照 “[0-9]+|[0-9]+[sS]|[0-9]+[.][0-9]{1,9}|[0-9]+[.][0-9]{1,9}[sS]“ 格式,取值样例 [“3.5S”,”2S”,“1S”,“1.5S”],数组元素最多支持 10 个,每个元素数值整数大于 0 小于等于 60。
visibility string 安卓通知栏消息可见性,取值如下:VISIBILITY_UNSPECIFIEDPRIVATEPUBLICSECRET。取值说明请参考锁屏不展示通知内容
lightSettings object 自定义呼吸灯模式
foregroundShow bool 设备应用在前台时通知栏消息是否前台展示开关。
- true:是;
- false:否。
inboxContent List<string>当 style 为 3 时,Inbox 样式的内容(必选),支持最大 5 条内容,每条最大长度 1024 字符。展示效果请参考Inbox 样式章节。
buttons List<object>通知栏消息动作按钮,最多设置 3 个。
huawei.message.android.notification.button

通知栏消息动作按钮:

字段 类型 字段说明
namestring 按钮名称,必填,最大长度 40 字符。
actionTypeinteger按钮动作类型。
- 0:打开应用首页;
- 1:打开应用自定义页面;
- 2:打开指定的网页;
- 3:清除通知;
- 4:分享功能。
intentTypeinteger打开自定义页面的方式:
- 0:设置通过intent打开应用自定义页面;
- 1:设置通过action 打开应用自定义页面;当 action_type1 时,该字段必填。
intent string action_type1,此字段按照 intent_type 字段设置应用页面的 uri 或者 action.
data string 最大长度 1024 字符。当字段 action_type01 时,该字段用于在点击按钮后给应用透传数据,选填,格式必须为 key-value 形式:{“key1”:“value1”,“key2”:“value2”,…}。当 action_type4 时,此字段必选,为分享的内容。
huawei.message.android.notification.badge

自定义角标:

字段 类型 字段说明
addNum integer角标累加数字,大于 0 小于 100 的正整数。
badgeClassstring 应用包名+应用入口 Activity 类名。样例:com.huawei.codelabpush.MainActivity
setNum integer角标设置数字,大于等于 0 小于 100 的整数。
huawei.message.android.notification.clickAction

自定义消息点击行为:

字段 类型 字段说明
type integer消息点击行为类型。
- 1:用户自定义点击行为;
- 2:点击后打开特定 url;
- 3:点击后打开应用 App。
intentstring 自定义页面中 intent 的实现,当 type1 时,字段 intentaction 至少二选一。
url string 设置打开特定 URL。
actionstring 设置通过 action 打开应用自定义页面。
huawei.message.android.notification.light

自定义呼吸灯模式:

字段 类型 字段说明
color object呼吸灯颜色(见下表。)
lightOnDuration string呼吸灯点亮时间间隔,格式按照 “|[sS]|.|.[sS]”。
lightOffDurationstring呼吸灯熄灭时间间隔,格式按照 “|[sS]|.|.[sS]”。
huawei.message.android.notification.light.color

呼吸灯颜色:

字段 类型 字段说明
alphafloatRGB 颜色中的 alpha 设置,默认值为 1,取值范围 [0,1]。
red floatRGB 颜色中的 red 设置,默认值为 0,取值范围 [0,1]。
greenfloatRGB 颜色中的 green 设置,默认值为 0,取值范围 [0,1]。
blue floatRGB 颜色中的 blue 设置,默认值为 0,取值范围 [0,1]。