厂商消息分类接入 - Uniapp推送
为了防止向用户App滥发推送,减少对用户的打扰,各个手机厂商都在不断出台新的规则来规范消息分类,对消息的推送的限制越来越严格,对于不符合规范的消息很容易被判定为营销信息,而无法到达。
为了确保重要消息(如:聊天或订单提醒等)能够正常送达,开发者推送消息时,需严格按照厂商的规则来指定相关的分类参数,避免被厂商判定为滥发,而无法送达。
各厂商消息分类接入指南
华为
- 必须要向华为申请推送自分类权益,详情请参考《华为推送官方文档-消息分类标准》.
- 发送消息时指定huawei的category,比如将聊天消息设为IM,订单消息设为EXPRESS。
小米
- 向小米官方申请channel,详情请参考《小米channel官方申请指南》
- 发送消息时,指定xiaomi的channel_id
OPPO
- 向OPPO官方申请消息分类,详情请参考《OPPO消息分类说明》
- 发送消息时,指定oppo的category
注:根据oppo消息分类新规,2025年11月20日之前开启opush的应用可自主选择接入新消息分类方式category
或原有自建通道方式channel_id
,新开启opush的应用仅能使用新消息分类能力,配置消息时必须携带category
字段才能下发成功。
VIVO
- 根据VIVO提供的消息分类说明和您的业务真实需求选择
classification
参数和category
,详情请参考《VIVO推送消息分类说明》 和《VIVO服务端API接口文档》 - 发送时,指定
classification
参数和category
。classification
参数中 0 代表运营类消息,1 代表系统类消息,不填默认为1, 系统类消息有更高的到达率,但如果滥用系统类消息,可能会被VIVO厂商平台封禁
荣耀
- 向荣耀官方申请channel,详情请参考《荣耀推送官方文档-消息分类标准》
- 发送消息时,指定honor的
importance
参数,为 LOW 代表资讯营销类消息;为 NORMAL 代表服务通讯类消息。
发送消息时指定厂商分类参数
GoEasy SDK需升级至2.7.2及以上版本,才支持指定厂商消息分类参数。
Pubsub
- Javascript
- Rest API
//发送
goEasy.pubsub.publish({
channel: "test_channel",//替换为您自己的channel
message: "{'text':'Hello, GoEasy!'}",//替换为您想要发送的消息内容
notification:{
title:'title',
body:'body',
vendorOptions:{
huawei: {
category: ''
},
oppo: {
category: '',
// channel_id: ''
},
xiaomi: {
channel_id: ''
},
vivo:{
classification:1,
category:''
},
honor: {
importance: ''
}
}
},
onSuccess:function(){
console.log("消息发布成功。");
},
onFailed: function (error) {
console.log("消息发送失败,错误编码:"+error.code+" 错误信息:"+error.content);
}
})
curl -X POST https://rest-hz.goeasy.io/v2/pubsub/publish \
-H "Content-Type: application/json" \
-d "{
'appkey':'您的appkey',
'channel':'test_channel',
'content':'Hello, GoEasy!',
'notification':{
'title':'title',
'body':'body',
'vendorOptions':{
'huawei': {
'category': ''
},
'oppo': {
'category': ''
},
'xiaomi': {
'channel_id': ''
},
'vivo':{
'classification':1,
'category':''
},
'honor': {
'importance': ''
}
}
}
}"
IM
- Javascript
- Rest API
let textMessage = im.createTextMessage({
text: 'Hello, GoEasyIM',
to: {
type: GoEasy.IM_SCENE.PRIVATE,
id: 'user002',
data: {"avatar": "/www/xxx.png", "nickname": "Neo"}
},
notification: { //APP在后台运行,或进程被杀掉,将会收到通知栏提醒
'title': '张无忌发来一段文字',
'body': 'Hello, GoEasyIM',
'vendorOptions':{
'huawei': {
'category': ''
},
'oppo': {
'category':'',
// 'channel_id': ''
},
'xiaomi': {
'channel_id': ''
},
'vivo':{
'classification':1,
'category':''
},
'honor': {
'importance': ''
}
}
}
});
curl -X POST https://rest-hz.goeasy.io/v2/im/message \
-H "Content-Type: application/json" \
-d "{
'appkey': '您的appkey',
'senderId': 'user002',
'senderData': {'avatar':'/www/xxx.png','nickname':'Neo'},
'to': {
'type': 'private/group',
'id': 'userId/groupId',
'data': {'avatar':'/images/Avatar-2.png','name':'Wallace'}
},
'type': 'text/[自定义类型]',
'payload':'Hello,GoEasy',
'notification': {
'title': '张无忌发来一段文字',
'body': 'Hello, GoEasyIM',
'vendorOptions':{
'huawei': {
'category': ''
},
'oppo': {
'category': ''
},
'xiaomi': {
'channel_id': ''
},
'vivo':{
'classification':1,
'category':''
},
'honor': {
'importance': ''
}
}
}
}"