跳到主要内容

厂商消息分类接入 - Uniapp推送

为了防止向用户App滥发推送,减少对用户的打扰,各个手机厂商都在不断出台新的规则来规范消息分类,对消息的推送的限制越来越严格,对于不符合规范的消息很容易被判定为营销信息,而无法到达。

为了确保重要消息(如:聊天或订单提醒等)能够正常送达,开发者推送消息时,需严格按照厂商的规则来指定相关的分类参数,避免被厂商判定为滥发,而无法送达。

各厂商消息分类接入指南

华为

  1. 必须要向华为申请推送自分类权益,详情请参考《华为推送官方文档-消息分类标准》.
  2. 发送消息时指定huawei的category,比如将聊天消息设为IM,订单消息设为EXPRESS。

小米

  1. 向小米官方申请channel,详情请参考《小米channel官方申请指南》
  2. 发送消息时,指定xiaomi的channel_id

OPPO

  1. 向OPPO官方申请消息分类,详情请参考《OPPO消息分类说明》
  2. 发送消息时,指定oppo的category
    注:根据oppo消息分类新规,2025年11月20日之前开启opush的应用可自主选择接入新消息分类方式category或原有自建通道方式channel_id,新开启opush的应用仅能使用新消息分类能力,配置消息时必须携带category字段才能下发成功。

VIVO

  1. 根据VIVO提供的消息分类说明和您的业务真实需求选择classification参数和category,详情请参考《VIVO推送消息分类说明》《VIVO服务端API接口文档》
  2. 发送时,指定classification参数和categoryclassification参数中 0 代表运营类消息,1 代表系统类消息,不填默认为1, 系统类消息有更高的到达率,但如果滥用系统类消息,可能会被VIVO厂商平台封禁

荣耀

  1. 向荣耀官方申请channel,详情请参考《荣耀推送官方文档-消息分类标准》
  2. 发送消息时,指定honor的importance参数,为 LOW 代表资讯营销类消息;为 NORMAL 代表服务通讯类消息。

发送消息时指定厂商分类参数

GoEasy SDK需升级至2.7.2及以上版本,才支持指定厂商消息分类参数。

Pubsub


//发送
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);
}
})

IM


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': ''
}
}
}
});