====== 配置推送通知 ====== 本文主要介绍推送通知的结构和字段,建议按需配置。推送通知包含环信提供的基本推送配置以及各厂商的推送配置,默认情况下,后者优先级较高,会覆盖前者。 以下为推送通知的结构: { //基本推送配置。 "title": "您有一条新消息", "subTitle": "", "content": "请及时查看", "ext": {}, "config": { "clickAction": { "url":"", "action":"", "activity":"" }, "badge": { "addNum": 0, "setNum": 0 } }, //各厂商推送配置。 "easemob":{}, "apns": {}, "fcm": {}, "huawei": {}, "meizu": {}, "oppo": {}, "vivo": {}, "xiaomi": {} } ===== 基本推送配置 ===== ^字段 ^类型 ^描述 ^支持平台 ^是否必需 ^ |''%%title%%'' |String |通知栏展示的通知标题,默认为“您有一条新消息”。该字段长度不能超过 32 个字符(一个汉字相当于两个字符)。 | iOS & Android |是 | |''%%subTitle%%'' |String |通知栏展示的通知副标题。该字段长度不能超过 10 个字符。 | iOS |否 | |''%%content%%'' |String |通知栏展示的通知内容。默认为“请及时查看”。该字段长度不能超过 100 个字符(一个汉字相当于两个字符)。 | iOS & Android |是 | |''%%ext%%'' |Object |推送自定义扩展信息,为自定义 key-value 键值对。键值对个数不能超过 10 且长度不能超过 1024 个字符。 | iOS & Android | 否 | |''%%config%%'' |Object |与用户点击通知相关的操作。以及角标的配置,包含 ''%%clickAction%%'' 和 ''%%badge%%'' 字段。 | iOS & Android |否 | |''%%config.clickAction%%'' | Object | 在通知栏中点击触发的动作,均为字符串类型:
- url:打开自定义的 URL;
- action:打开应用的指定页面;
- activity:打开应用包名或 Activity 组件路径。
若不传该字段,默认打开应用的首页。| Android | 否 | |''%%config.badge%%'' |Object |推送角标,包含以下三个字段:
- addNum:整型,表示推送通知到达设备时,角标数字累加的值。
- setNum:整型,表示推送通知到达设备时,角标数字显示的值。
- activity:字符串类型,入口类(华为角标需要配置)。 | Android | 否 | ===== 各厂商推送配置 ===== ^字段 ^类型 ^描述 ^是否必需 ^ |''%%easemob%%'' |Object |环信推送 |否 | |''%%apns%%'' |Object |Apple 推送通知服务(APNs) |否 | |''%%fcm%%'' |Object |谷歌 Firebase 云消息传递 (FCM) |否 | |''%%xiaomi%%'' |Object |小米推送。 |否 | |''%%vivo%%'' |Object |vivo 推送。 |否 | |''%%oppo%%'' |Object |OPPO 推送。 |否 | |''%%meizu%%'' |Object |魅族推送特性。 |否 | |''%%huawei%%'' |Object |华为推送特性。 |否 | ==== Easemob 推送 ==== 下面为包含大图片的通知的代码示例,你可以按实际需求配置: { "title": "通知栏显示的通知标题", "content": "通知栏展示的通知内容", "subTitle": "通知栏显示的通知副标题", "iconUrl": "https://docs-im.easemob.com/lib/tpl/bootstrap3_ori/images/logo.png", "needNotification": true, "badge": { "setNum": 0, "addNum": 1, "activity": "com.hyphenate.easeim.section.me.activity.AboutHxActivity" }, "operation": { "type": "2", "openUrl": "https://www.baidu.com/", "openAction": "com.hyphenate.easeim.section.me.activity.OfflinePushSettingsActivity" }, "channelId": "chat", "channelName": "消息", "channelLevel": 3, "autoCancel": 1, "expiresTime": 3600000, "sound": 0, "vibrate": 0, "style": 2, "bigTxt": "大文本内容", "bigPicture": "https://docs-im.easemob.com/lib/tpl/bootstrap3_ori/images/logo.png", "id": 056734579 } 推送字段说明如下表所示: ^字段 ^类型 ^描述 ^支持平台 ^ |''%%title%%'' |String |通知栏展示的通知标题。 |iOS & Android | |''%%content%%'' |String |通知栏展示的通知内容。 |iOS & Android | |''%%subTitle%%'' |String |通知栏展示的通知副标题。 |iOS | |''%%iconUrl%%'' |String |推送图标的 URL。 |iOS & Android | |''%%needNotification%%'' |boolean |是否弹出通知:
- (默认)''%%true%%'':通知消息;
- ''%%false%%'':透传消息。 |iOS & Android | |''%%badge%%'' |Object |推送角标。详见 [[https://docs-im.easemob.com/push/apppush/pushkv#基本推送配置|基本推送配置]]中的角标说明。 |iOS & Android | |''%%operation%%'' | Object | 在通知栏中点击触发的动作。 | iOS & Android | |''%%operation.type%%'' |Int |在通知栏中点击触发的动作类型。
- (默认)''%%0%%'':启动应用。
- ''%%1%%'':打开自定义的 URL。需设置 ''%%openUrl%%'' 字段为自定义的 URL,若不设置,点击无效果。
- ''%%2%%'':打开应用的指定页面。需设置 ''%%openAction%%'' 为打开的应用页面的地址。若不设置,点击无效果。 |iOS & Android | |''%%channelId%%'' |String |通知渠道 ID,默认为 ''%%chat%%''。客户端渠道存在则通知。若客户端渠道不存在,则结合 channelName,channelLevel 创建新通道。 |Android | |''%%channelName%%'' |String |通知渠道名称,默认为 ''%%消息%%''。只有第一次创建通道时使用。 |Android | |''%%channelLevel%%'' |Int |通知级别,只有第一次创建通道时使用。
- ''%%0%%'':最低;
- ''%%3%%'':默认;
- ''%%4%%'':高。 |Android | |''%%autoCancel%%'' |Int |点击通知后是否自动关闭通知栏。
- ''%%0%%'':否;
- (默认)''%%1%%'':是。 |Android | |''%%expiresTime%%'' |Long |通知展示的过期时间,为 Unix 时间戳,单位为毫秒。 |iOS & Android | |''%%sound%%'' |Int |声音提醒。
- (默认)''%%0%%'':无声音;
- 1:声音提醒。 |iOS & Android | |''%%vibrate%%'' |Int |振动提醒。
- (默认)0:无振动;
- 1:振动提醒。 |iOS & Android | |''%%style%%'' |Int |展示样式。
-(默认)0:普通样式;
- 1:大文本样式;
- 2:大图片样式。 |iOS & Android | |''%%bigTxt%%'' |String |大文本内容。该字段仅在 ''%%style%%'' 为 ''%%1%%'' 时需要设置。 |iOS & Android | |''%%bigPicture%%'' |String |大图片 URL。该字段仅在 ''%%style%%'' 为 ''%%2%%'' 时需要设置。 |Android | |''%%id%%'' |Long |通知 ID。默认值为随机数。当 ID 相同时,新通知的内容会覆盖之前的通知。 |iOS & Android | ==== APNs 推送相关字段 ==== ^字段 ^类型 ^描述 ^ |''%%invalidationTime%%'' |Int |推送过期时间间隔,单位为毫秒。 | |''%%priority%%'' |Int |通知的优先级。
- ''%%5%%'':发送通知时会考虑设备电量;
- ''%%10%%'':立即发送通知。 | |''%%pushType%%'' |String |推送展示类型。在 iOS 13 或 watchOS 6 以上设备支持,只能为 “background” 或 “alert”,默认为 “alert”。 | |''%%collapseId%%'' |String |用于将多个通知合并为用户的单个通知的标识符。 | |''%%apnsId%%'' |String |通知的唯一标识。 | |''%%badge%%'' |Int |应用的图标上方显示的角标数字。 | |''%%sound%%'' |String | 设备收到通知时要播放的铃声:
- 设置的铃声最多为 30 秒。若超过该时间,系统会启用默认铃声 ''%%default%%'';
- 铃声文件只支持 ''%%aiff%%''、''%%wav%%'' 和 ''%%caf%%'' 格式,例如 test.caf。
- 铃声文件必须放在 app 的 /Library/Sounds 目录中。 | |''%%mutableContent%%'' |Bool |是否向推送中增加 ''%%mutable-content%%'' 字段开启 APNs 通知扩展。
- ''%%true%%'':是;
- ''%%false%%'':否。 | |''%%contentAvailable%%'' |Bool |是否配置后台更新通知。开启后系统会在后台唤醒您的应用程序,并将通知传递。
- ''%%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 |指定一组可折叠的消息(例如,含有 collapse_key: “Updates Available”),以便当恢复传送时只发送最后一条消息。这是为了避免当设备恢复在线状态或变为活跃状态时重复发送过多相同的消息。 | |''%%priority%%'' |String |消息的优先级,即“normal”(普通)和“high”(高)。在 Apple 平台中,这些值对应于 APNs 优先级中的 5 和 10。 | |''%%timeToLive%%'' |String |设备离线后消息在 FCM 存储空间中保留的时长(以秒为单位)。支持的最长存留时间为 4 周,默认值为 4 周。 | |''%%dryRun%%'' |Bool |是否为测试消息。
- ''%%true%%'':是。开发者可在不实际发送消息的情况下对请求进行测试。
- ''%%false%%'':否。 | |''%%restrictedPackageName%%'' |String |应用的软件包名称,其注册令牌必须匹配才能接收消息。 | |''%%data%%'' |Object |自定义推送扩展信息。 | |''%%notification%%'' |Object |用户可见的预定义通知载荷键值对,详见 [[https://docs-im.easemob.com/push/apppush/pushkv#FCM推送通知的字段|FCM 推送通知的字段]] | === FCM 推送通知的字段 === ^字段 ^类型 ^描述 ^ |''%%title%%'' |String |通知栏中展示的通知的标题。 | |''%%body%%'' |String |通知栏中展示的通知的内容。 | |''%%androidChannelId%%'' |String |通知的渠道 ID。
- 应用必须使用此渠道 ID 创建一个渠道,才能收到包含此渠道 ID 的所有通知。
- 如果你不在请求中发送该渠道 ID,或者应用尚未创建所提供的渠道 ID,则 FCM 将使用应用清单文件中指定的渠道 ID。 | |''%%icon%%'' |String |通知图标。 | |''%%sound%%'' |String |设备收到通知时要播放的声音,例如 ring.mp3。声音文件必须放在 app 的 /res/raw/ 目录中。 | |''%%tag%%'' |String |用于替换抽屉式通知栏中现有通知的标识符。 | |''%%color%%'' |String |通知的图标颜色。 | |''%%clickAction%%'' |String |与用户点击通知相关的操作。点击通知时,将会启动带有匹配 intent 过滤器的 Activity。 | |''%%titleLocKey%%'' |String |应用的字符串资源中标题字符串的键,用于将标题文字本地化为用户当前的本地化设置语言。 | |''%%titleLocArgs%%'' |List |将用于替换 title_loc_key(用来将标题文字本地化为用户当前的本地化设置语言)中的格式说明符的变量字符串值。 | |''%%bodyLocKey%%'' |String |应用的字符串资源中正文字符串的键,用于将正文文字本地化为用户当前的本地化设置语言。 | |''%%bodyLocArgs%%'' |List |将用于替换 body_loc_key(用来将正文文字本地化为用户当前的本地化设置语言)中的格式说明符的变量字符串值。 | ==== 小米推送说明 ==== 自定义通道和跳转。 { "title":"你好,欢迎使用环信", "content":"你好", "channelId":"easemob-test", "notifyEffect":3, "webUri":"http://www.easemob.com" } 推送字段说明: ^字段 ^类型 ^描述 ^ |''%%title%%'' |String |通知栏中展示的通知的标题。 该字段长度不能超过 50 字符(一个汉字等于一个字符)。 | |''%%description%%'' |String |通知栏中展示的通知的内容。该字段长度不能超过 128 字符(一个汉字等于一个字符)。 | |''%%restrictedPackageNames%%'' |String |应用包名。 | |''%%passThrough%%'' |Int |是否弹出通知:
- ''%%0%%'':通知;
- ''%%1%%'':透传消息。 | |''%%payload%%'' |Object |通知的内容。 | |''%%notifyType%%'' |Int |通知方式。
- ''%%-1%%'':默认全部;
- ''%%1%%'':使用默认提示音提示;
- ''%%2%%'':使用默认振动提示;
- ''%%4%%'':使用默认 led 灯光提示。 | |''%%timeToLive%%'' |Long |离线保留时长(单位为毫秒)。 | |''%%timeToSend%%'' |Long |定时发送消息。用自 1970 年 1 月 1 日以来 00:00:00.0 UTC 时间表示。 | |''%%notifyId%%'' |Int |相同 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 的组件。当 notifyEffect 为 2 时,该参数值的格式为 “intent:#Intent;action=xxxx;end”。 | |''%%webUri%%'' |String |网页。 | |''%%flowControl%%'' |Int |控制是否需要进行平缓发送。 | |''%%jobkey%%'' |String |消息聚合,相同 jobkey 的消息只展示第一条。 | |''%%callbackUrl%%'' |String |回调地址。 | |''%%callbackParam%%'' |String |回调参数。 | |''%%callbackType%%'' |Int |回调类型:
- ''%%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 |[[https://dev.mi.com/console/doc/detail?pId=1163#_11|通知类别的 ID。]] | ==== vivo 推送说明 ==== 系统消息,回执和打开网页。 { "classification": 1, "extra": { "callback": "http://www.easemob.com/callback", "callbackParam": "test push callback" }, "skipContent": "http://www.easemob.com", "skipType": 2 } 推送字段说明: ^字段 ^类型 ^描述 ^ |''%%title%%'' |String |通知栏中展示的通知的标题。该字段长度不能超过 40 字符(一个汉字等于两个字符)。 | |''%%content%%'' |String |通知栏中展示的通知的内容。 该字段长度不能超过 100 字符(一个汉字等于两个字符)。 | |''%%notifyType%%'' |Int |通知类型。
- ''%%1%%'':无;
- ''%%2%%'':响铃;
- ''%%3%%'':振动;
- ''%%4%%'':响铃和振动。 | |''%%timeToLive%%'' |Int |消息保留时长(单位:秒)。 | |''%%skipType%%'' |Int |点击跳转类型。
- ''%%1%%'':打开APP首页;
- ''%%2%%'':打开链接;
- ''%%3%%'':自定义;
- ''%%4%%'':打开 app 内指定页面。 | |''%%skipContent%%'' |String |跳转内容。跳转类型为 2 时,跳转内容最大 1000 个字符。跳转类型为 4 时,跳转内容的格式为 “intent:#Intent;component=应用包名/activity类路径;end”。 | |''%%networkType%%'' |Int |网络方式。
- (默认)''%%-1%%'':不限;
- ''%%1%%'':Wi-Fi 下发送。 | |''%%classification%%'' |Int |消息类型。
- ''%%0%%'':运营类消息;
- ''%%1%%'':系统类消息。
在环信控制台的 vivo 推送的**添加推送证书**对话框中也可以配置该消息类型,但这里的优先级高于控制台的配置。 | |''%%clientCustomMap%%'' |Object |客户端自定义键值对。 | |''%%requestId%%'' |String |用户请求唯一标识,长度限制为 64 字符。 | |''%%pushMode%%'' |Int |推送模式。
- (默认)''%%0%%'':正式推送;
- ''%%1%%'':测试推送。 | |''%%extra%%'' |Object |[[https://docs-im.easemob.com/push/apppush/pushkv#vivo推送回调|推送回调]] | |''%%category%%'' |String |二级分类,字段的值详见[[https://dev.vivo.com.cn/documentCenter/doc/359|二级分类标准 中category说明]]。
1. 填写''%%category%%'' 后,可以不设置 ''%%classification%%'' 参数,但若设置 ''%%classification%%'',需保证 ''%%category%%'' 与 ''%%classification%%'' 是正确对应关系,否则推送失败。
2. 该参数请按照消息分类规则填写,且必须大写;若传入无效的值,则推送失败。 | |''%%notifyId%%'' |Int |通知 ID,即通知的唯一标识。若多个消息的通知 ID 相同,到达设备的新消息会覆盖旧消息显示在设备通知栏中。取值范围为:1-2147483647。 | === vivo 推送回调 === ^字段 ^类型 ^描述 ^ |''%%callback%%'' |String |回调 URL, 长度限制为 128 字符。 | |''%%callbackParam%%'' |String |回调参数,长度限制为 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%%'' |Int |通知栏样式。
- ''%%1%%'':标准;
- ''%%2%%'':长文本;
- ''%%3%%'':大图。 | |''%%clickActionType%%'' |Int |点击动作类型。
- ''%%0%%'':启动应用;
- ''%%1%%'':打开应用内页(activity的intent action);
- ''%%2%%'':打开网页;
- ''%%4%%'':打开应用内页(activity);
- ''%%5%%'':Intent scheme URL。 | |''%%clickActionActivity%%'' |String |应用内页地址【''%%click_action_type%%'' 为 ''%%1%%'' 或 ''%%4%%'' 时必填,长度限制为 500 字符】 | |''%%clickActionUrl%%'' |String |网页地址【''%%click_action_type%%'' 为 ''%%2%%'' 与 ''%%5%%'' 时必填,长度限制为 500 字符】 | |''%%actionParameters%%'' |Object |动作参数,打开应用内页或网页时传递给应用或网页。 | |''%%offLine%%'' |Bool |是否进离线消息。
- ''%%true%%'':是;
- ''%%false%%'':否。 | |''%%offLineTtl%%'' |Int |离线消息保存时长 (单位为秒) 。 | |''%%timeZone%%'' |String |时区(GMT+08:00)。 | |''%%callBackUrl%%'' |String |回调地址。 | |''%%callBackParameter%%'' |String |回调参数。 | |''%%showTtl%%'' |Int |限时展示(秒) 。 | |''%%notifyId%%'' |Int |通知显示时的唯一标识,实现新的消息覆盖上一条消息功能。 | ==== 魅族推送说明 ==== ^字段 ^类型 ^描述 ^ |''%%title%%'' |String |通知栏中展示的通知的标题。该字段长度不能超过 32 字符(一个汉字等于一个字符)。 | |''%%content%%'' |String |通知栏中展示的通知的内容。该字段长度不能超过 100 字符(一个汉字等于一个字符)。 | |''%%noticeExpandType%%'' |Int |展开方式。
- ''%%0%%'':禁用;
- ''%%1%%'':文本。 | |''%%noticeExpandContent%%'' |String |展开内容。''%%noticeExpandType%%'' 为 ''%%1%%'' 时,即为文本时,必填。 | |''%%clickType%%'' |Int |点击动作。
- ''%%0%%'':打开应用;
- ''%%1%%'':打开应用页面;
- ''%%2%%'':打开 H5 地址;
- ''%%3%%'':应用客户端自定义。 | |''%%url%%'' |String |H5 页面地址。 | |''%%parameters%%'' |Object |参数。 | |''%%activity%%'' |String |应用页面地址。 | |''%%customAttribute%%'' |String |应用客户端自定义内容。 | |''%%isOffLine%%'' |Bool |是否进离线消息。
- ''%%true%%'':是;
- ''%%false%%'':否。 | |''%%validTime%%'' |Int |有效时长(小时)。 | |''%%isSuspend%%'' |Bool |是否通知栏悬浮窗显示。
- ''%%true%%'':是;
- ''%%false%%'':否。 | |''%%isClearNoticeBar%%'' |Bool |是否可清除通知栏。
- ''%%true%%'':是;
- ''%%false%%'':否。 | |''%%isFixDisplay%%'' |Bool |是否定时展示。
- ''%%true%%'':是;
- ''%%false%%'':否。 | |''%%fixStartDisplayDate%%'' |date |定时展示开始时间。 | |''%%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" } } } } ^字段 ^类型 ^描述 ^ |''%%validateOnly%%'' |Bool |是否为测试消息,实际不会下发。
- ''%%true%%'':是;
- ''%%false%%'':否。 | |''%%message%%'' |Object |推送消息内容。 | |''%%review%%'' |Object |第三方审核机构审核结果,具体请参考华为官网[[https://developer.huawei.com/consumer/cn/doc/development/HMS-References/push-sendapi#Review|Review]]的定义。 | === 推送消息结构体 === ^字段 ^类型 ^描述 ^ |''%%data%%'' |Object |自定义消息负载。 | |''%%notification%%'' |Object |[[https://docs-im.easemob.com/push/apppush/pushkv#通知栏消息内容|通知栏消息内容]]。 | |''%%android%%'' |Object |[[https://docs-im.easemob.com/push/apppush/pushkv#安卓消息推送控制参数|安卓消息推送控制参数]]。 | == 通知栏消息内容 == ^字段 ^类型 ^描述 ^ |''%%title%%'' |String |通知栏消息的标题。 | |''%%body%%'' |String |通知栏消息的内容。 | |''%%image%%'' |String |用户自定义的通知栏消息右侧大图标 URL。 | == 安卓消息推送控制参数 == ^字段 ^类型 ^描述 ^ |''%%collapseKey%%'' |Int |离线消息缓存分组标识。 | |''%%urgency%%'' |String |透传消息投递优先级。 | |''%%category%%'' |String |用于重要优先级的透传消息发送场景标识。 | |''%%ttl%%'' |String |消息缓存时间(单位为秒)。 | |''%%biTag%%'' |String |批量任务消息标识。 | |''%%fastAppTargetType%%'' |Int |快应用发送透传消息时,指定小程序的模式类型。
- ''%%1%%'':开发态;
- (默认)''%%2%%'':生产态。 | |''%%data%%'' |String |自定义消息负载,此处如果设置了 data,则会覆盖 ''%%message.data%%'' 字段。 | |''%%notification%%'' |Object |[[https://docs-im.easemob.com/push/apppush/pushkv#安卓通知栏消息结构体|安卓通知栏消息结构体]]。 | == 安卓通知栏消息结构体 == ^字段 ^类型 ^描述 ^ |''%%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 |[[https://docs-im.easemob.com/push/apppush/pushkv#自定义消息点击行为|消息点击行为]] | |''%%bodyLocKey%%'' |String |通知显示本地化。 | |''%%bodyLocArgs%%'' |List | | |''%%titleLocKey%%'' |String |标题本地化 key。 | |''%%titleLocArgs%%'' |List | | |''%%multiLangKey%%'' |List |消息国际化多语言参数。 | |''%%channelId%%'' |String |通道 ID。 | |''%%notifySummary%%'' |String |安卓通知栏消息简要描述。 | |''%%image%%'' |String |自定义的安卓通知栏消息右侧大图标 URL。 | |''%%style%%'' |Int |通知栏样式:
- ''%%0%%'':默认样式;
- ''%%1%%'':大文本样式;
- ''%%3%%'':Inbox样式。 | |''%%bigTitle%%'' |String |安卓通知栏消息大文本标题。 | |''%%bigBody%%'' |String |安卓通知栏消息大文本内容。 | |''%%autoClear%%'' |Int |消息展示时长,超过后自动清除,单位为毫秒。 | |''%%notifyId%%'' |Int |每条消息在通知显示时的唯一标识。实现新的通知栏消息覆盖老的。 | |''%%group%%'' |String |消息分组,将同一组的消息只显示 1 条。 | |''%%badge%%'' |Object |[[https://docs-im.easemob.com/push/apppush/pushkv#自定义角标|安卓通知消息角标控制]] | |''%%autoCancel%%'' |Bool |安卓通知栏消息保持标识,在点击通知栏消息后,消息是否不显示在通知栏。
- ''%%true%%'':是;
- ''%%false%%'':否。 | |''%%when%%'' |String |消息的排序时间,安卓通知栏消息根据这个值将消息排序,同时这个时间在通知栏上显示。样例:2014-10-02T15:01:23.045123456Z | |''%%importance%%'' |String |Android通知消息分类,决定用户设备消息通知行为,取值如下:
- ''%%LOW%%'':资讯营销类消息;
- ''%%NORMAL%%'':服务与通讯类消息。 | |''%%useDefaultVibrate%%'' |Bool |是否使用系统默认振动模式控制开关。
- ''%%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%%''。取值说明请参考[[https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/push-other#h1-1576835261364|锁屏不展示通知内容]]。 | |''%%lightSettings%%'' |Object |[[https://docs-im.easemob.com/push/apppush/pushkv#自定义呼吸灯模式|自定义呼吸灯模式]]。 | |''%%foregroundShow%%'' |Bool |设备应用在前台时通知栏消息是否前台展示开关。
- ''%%true%%'':是;
- ''%%false%%'':否。 | |''%%inboxContent%%'' |List |当 style 为 ''%%3%%'' 时,Inbox 样式的内容(必选),支持最大 5 条内容,每条最大长度 1024 字符。展示效果请参考[[https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/push-other#inbox_style|Inbox 样式]]章节。 | |''%%buttons%%'' |List |[[https://docs-im.easemob.com/push/apppush/pushkv#通知栏消息动作按钮|通知栏消息动作按钮]],最多设置 3 个。 | == 通知栏消息动作按钮 == ^字段 ^类型 ^描述 ^ |''%%name%%'' |String |按钮名称,必填,最大长度 40 字符。 | |''%%actionType%%'' |Int |按钮动作类型。
- ''%%0%%'':打开应用首页;
- ''%%1%%'':打开应用自定义页面;
- ''%%2%%'':打开指定的网页;
- ''%%3%%'':清除通知;
- ''%%4%%'':分享功能。 | |''%%intentType%%'' |Int |打开自定义页面的方式:
- ''%%0%%'':设置通过**intent**打开应用自定义页面;
- ''%%1%%'':设置通过**action** 打开应用自定义页面;当 ''%%action_type%%'' 为 ''%%1%%'' 时,该字段必填。 | |''%%intent%%'' |String |当 ''%%action_type%%'' 为 ''%%1%%'',此字段按照 ''%%intent_type%%'' 字段设置应用页面的 uri 或者 action. | |''%%data%%'' |String |最大长度 1024 字符。当字段 ''%%action_type%%'' 为 ''%%0%%'' 或 ''%%1%%'' 时,该字段用于在点击按钮后给应用透传数据,选填,格式必须为 key-value 形式:{“key1”:“value1”,“key2”:“value2”,…}。当 ''%%action_type%%'' 为 ''%%4%%'' 时,此字段必选,为分享的内容。 | == 自定义角标 == ^字段 ^类型 ^描述 ^ |''%%addNum%%'' |Int |角标累加数字,大于 0 小于 100 的正整数。 | |''%%badgeClass%%'' |String |应用包名+应用入口 Activity 类名。样例:''%%com.huawei.codelabpush.MainActivity%%''。 | |''%%setNum%%'' |Int |角标设置数字,大于等于 0 小于 100 的整数。 | == 自定义消息点击行为 == ^字段 ^类型 ^描述 ^ |''%%type%%'' |Int |消息点击行为类型。
- ''%%1%%'':用户自定义点击行为;
- ''%%2%%'':点击后打开特定 url;
- ''%%3%%'':点击后打开应用 App。 | |''%%intent%%'' |String |自定义页面中 intent 的实现,当 ''%%type%%'' 为 ''%%1%%'' 时,字段 ''%%intent%%'' 和 ''%%action%%'' 至少二选一。 | |''%%url%%'' |String |设置打开特定 URL,URL 使用的协议必须是 HTTPS 协议。 | |''%%action%%'' |String |设置通过 action 打开应用自定义页面。 | == 自定义呼吸灯模式 == ^字段 ^类型 ^描述 ^ |''%%color%%'' |Object |[[https://docs-im.easemob.com/push/apppush/pushkv#呼吸灯颜色|呼吸灯颜色]] | |''%%lightOnDuration%%'' |String |呼吸灯点亮时间间隔,格式按照 “|[sS]|.|.[sS]”。 | |''%%lightOffDuration%%'' |String |呼吸灯熄灭时间间隔,格式按照 “|[sS]|.|.[sS]”。 | == 呼吸灯颜色 == ^字段 ^类型 ^描述 ^ |''%%alpha%%'' |Float |RGB 颜色中的 alpha 设置,默认值为 ''%%1%%'',取值范围 [0,1]。 | |''%%red%%'' |Float |RGB 颜色中的 red 设置,默认值为 ''%%0%%'',取值范围 [0,1]。 | |''%%green%%'' |Float |RGB 颜色中的 green 设置,默认值为 ''%%0%%'',取值范围 [0,1]。 | |''%%blue%%'' |Float |RGB 颜色中的 blue 设置,默认值为 ''%%0%%'',取值范围 [0,1]。 | ==== 荣耀推送说明 ==== { "data":{ "key1":"value1" }, "androidConfig":{ "androidNotification":{ "title":"honor", "body":"body", "clickAction":{ "type":2, "url":"https://wwww.easemob.com" }, "badgeNotification":{ "setNum":1, "badgeClass":"com.hyphenate.chatdemo.section.login.activity.SplashActivity" } } } } === 推送通知结构体 === ^字段 ^类型 ^描述 ^ |''%%data%%'' |Object |自定义消息负载,为 key-value 格式。 | |''%%androidConfig%%'' |Object |[[https://docs-im.easemob.com/push/apppush/pushkv#Android消息推送控制参数|Android消息推送控制参数]]。 | === Android消息推送控制参数 === ^字段 ^类型 ^描述 ^ |''%%ttl%%'' |String |消息缓存时间,单位为秒。 | |''%%biTag%%'' |String |批量任务消息标识,消息回执时会返回给应用服务器。 | |''%%data%%'' |String |自定义消息负载。若设置了该字段,则会覆盖[[#推送通知结构体|上层的 data 字段]]。 | |''%%androidNotification%%'' |Object |[[https://docs-im.easemob.com/push/apppush/pushkv#Android通知栏消息结构体|Android 通知栏消息结构体]]。 | === Android通知栏消息结构体 === ^参数 ^类型 ^描述 ^ |''%%title%%'' |String |安卓通知栏消息标题。 | |''%%body%%'' |String |安卓通知栏消息内容。 | |''%%clickAction%%'' |Object |[[#通知栏消息单击动作|消息点击动作]]。 | |''%%image%%'' |String |自定义通知栏消息右侧大图标 URL。 | |''%%style%%'' |Int |通知栏样式:
- ''%%0%%'':默认样式;
- ''%%1%%'':大文本样式。 | |''%%bigTitle%%'' |String |大文本标题,当 ''%%style%%'' 为 ''%%1%%'' 时必选。 | |''%%bigBody%%'' |String |大文本内容,当 ''%%style%%'' 为 ''%%1%%'' 时必选。 | |''%%importance%%'' |String |Android 通知消息分类,对不同类别消息的默认展示方式、消息样式进行差异化管理:
- ''%%LOW%%'':资讯营销类消息,包括内容资讯消息和活动营销消息。
- ''%%NORMAL%%'':服务与通讯类消息,包括社交通讯消息和服务提醒消息。 | |''%%when%%'' |String |通知栏消息的到达时间,为 UTC 时间戳,,例如 2014-10-02T15:01:23.045123456Z。 | |''%%buttons%%'' |List |[[#通知栏消息行为按钮|通知栏消息动作按钮]],最多可设置 3 个。例如,“buttons”:[{“name”:“打开应用”,“actionType”:“1”}]。 | |''%%badgeNotification%%'' |Object |[[#角标控制|角标控制]]。 | |''%%notifyId%%'' |Int |每条消息在通知显示时的唯一标识。新的消息的标识会覆盖上一条消息的标识。 | === 通知栏消息单击动作 === ^参数 ^是否必选 ^参数类型 ^描述 ^ |''%%type%%'' |是 |Int |消息点击行为类型:
- ''%%1%%'':打开应用自定义页面。
- ''%%2%%'':点击后打开特定 URL。
- (默认)''%%3%%'':点击后打开应用首页。 | |''%%intent%%'' |否 |String |通过 ''%%intent%%'' 打开应用自定义页面。若 ''%%type%%'' 为 ''%%1%%'',''%%intent%%'' 和 ''%%action%%'' 参数至少二选一。 | |''%%url%%'' |否 |String |设置打开特定 URL,URL 使用的协议必须是 HTTPS 协议。 | |''%%action%%'' |否 |String |通过 ''%%action%%'' 打开应用自定义页面。 | === 通知栏消息行为按钮 === ^参数 ^是否必选 ^参数类型 ^描述 ^ |''%%name%%'' |是 |String |按钮名称,最大长度为 40 个字符。 | |''%%actionType%%'' |是 |Int |按钮动作类型:
- ''%%0%%'':打开应用首页;
- ''%%1%%'':打开应用自定义页面;
- ''%%2%%'':打开指定的页面。 | |''%%intentType%%'' |否 |Int |打开自定义页面的方式:
- ''%%0%%'':设置通过 ''%%intent%%'' 打开应用自定义页面;
- ''%%1%%'':设置通过 ''%%action%%'' 打开应用自定义页面。
当 ''%%actionType%%'' 为 ''%%1%%'' 时,该字段必填。 | |''%%intent%%'' |否 |String |
- 若 ''%%actionType%%'' 为 ''%%1%%'',按照 ''%%intentType%%'' 字段设置应用页面的 URL 或 ''%%action%%''。具体设置方式参见打开应用自定义页面。
- 若''%%actionType%%'' 为 ''%%2%%'',此字段设置打开指定网页的 URL,URL 使用的协议必须是 HTTPS 协议,例如,https:%%//%%example.com/image.png。 | |''%%data%%'' |否 |String |最大长度为 1024 个字符。 若 ''%%actionType%%'' 为 ''%%0%%'' 或 ''%%1%%'',该参数用于在点击按钮后给应用透传数据,格式必须为 key-value 形式,例如 {“key1”:“value1”,“key2”:“value2”,…}。 | === 角标控制 === ^参数 ^是否必选 ^参数类型 ^描述 ^ |''%%addNum%%'' |否 |Int |应用角标累加数字非应用角标实际显示数字,为大于 ''%%0%%'' 小于 ''%%100%%'' 的整数。 | |''%%badgeClass%%'' |是 |String |应用入口 Activity 类全路径。 例如,com.example.test.MainActivity。 | |''%%setNum%%'' |否 |Int |角标设置数字,大于等于 ''%%0%%'' 小于 ''%%100%%'' 的整数。 如果 ''%%setNum%%'' 与 ''%%addNum%%'' 同时存在时,以 ''%%setNum%%'' 为准。 |