华为推送服务管控新规及适配
问题背景
华为将于2023年9月15日实行新规:不论app在线还是离线,所有通知都会受华为手机系统的管控,管控方式包括发送通知的条数上限以及通知弹出的方式。
规则简述
根据送达的通道分类
云端通知:走华为通道送达的通知。在端侧需要依赖AndroidPopupActivity弹框,数据依赖该类传递。
本地通知:走阿里通道送达的通知。在端侧可用MessageReceiver或IntentService接收,弹框可自定义。
根据消息内容分类
EMAS推送适配规则
客户端走哪个通道送达?
未提供分类信息(未设置AndroidMessageHuaweiCategory) | 提供分类信息 (已设置AndroidMessageHuaweiCategory) | |
SDK<3.8.7 | 华为通道 | 华为通道 |
SDK≥3.8.7 | 在线阿里通道 离线华为通道 | 在线且本地分类值不为“不支持”,阿里通道 在线且本地分类值为“不支持”,华为通道 离线且云端通知分类不为“不涉及”,华为通道 离线且云端通知分类为“不涉及”,阿里通道 |
注意:建议尽快升级客户端SDK到3.8.7版本。
服务端应下发哪个参数?
AndroidNotificationHuaweiChannel(对应华为importance):建议不填。
AndroidMessageHuaweiCategory(对应华为category)
为空时:在线走阿里通道,离线走华为通道。普通app 2条/天,持证新闻机构新闻类app 5条/天。
不为空:推送效果由具体取值决定,请参考下方:EMAS建议取值列表。
注意:若服务端有AndroidMessageHuaweiCategory参数,则无需升级。
几类通知类型举例
云端category和本地category都有值:您只需申请云端取值“IM”。推送结果:“app在线时走阿里通道送达,app离线时走华为通道送达”。
云端category有值,本地category为“不支持”:只需申请云端取值“HEALTH”。推送结果:“只走华为通道”。
云端category为“不涉及”,本地category有值:只需申请云端取值“CATEGORY_ALARM”。推送结果:“只走阿里通道送达”。
AndroidMessageHuaweiCategory建议取值表(营销通知无需关注)
若您的消息类型属于下表,则请申请建议取值之后传入AndroidMessageHuaweiCategory参数。
可以做到不限推送条数,但是推送效果需要根据消息类型决定。
消息类型 | 云端通知category取值 | 本地通知category取值 | AndroidMessageHuaweiCategory取值 | 取值效果 |
即时聊天 | IM | CATEGORY_MESSAGE | IM | SDK≥3.8.7 在线阿里通道,离线华为通道,SDK<3.8.7 华为通道 |
音频、视频通话 | VOIP | CATEGORY_CALL | VOIP | SDK≥3.8.7 在线阿里通道,离线华为通道, SDK<3.8.7 华为通道 |
订阅 | SUBSCRIPTION | 不支持 | SUBSCRIPTION | 华为通道 |
出行 | TRAVEL | CATEGORY_NAVIGATION | TRAVEL | SDK≥3.8.7 在线阿里通道,离线华为通道, SDK<3.8.7 华为通道 |
健康 | HEALTH | 不支持 | HEALTH | 华为通道 |
工作事项提醒 | WORK | CATEGORY_REMINDER | WORK | SDK≥3.8.7 在线阿里通道,离线华为通道, SDK<3.8.7 华为通道 |
账号动态 | ACCOUNT | 不支持 | ACCOUNT | 华为通道 |
订单&物流 | EXPRESS | 不支持 | EXPRESS | 华为通道 |
财务 | FINANCE | CATEGORY_SERVICE | FINANCE | SDK≥3.8.7 在线阿里通道,离线华为通道, SDK<3.8.7 华为通道 |
设备提醒 | DEVICE_REMINDER | 不支持 | DEVICE_REMINDER | 华为通道 |
邮件 | CATEGORY_EMAIL | SDK≥3.8.7 在线阿里通道,离线华为通道, SDK<3.8.7 华为通道 | ||
闹钟/计时器 | 不涉及 | CATEGORY_ALARM | CATEGORY_ALARM | 阿里通道 |
秒表 | 不涉及 | CATEGORY_STOPWATCH | CATEGORY_STOPWATCH | 阿里通道 |
进度 | 不涉及 | CATEGORY_PROGRESS | CATEGORY_PROGRESS | 阿里通道 |
位置共享 | 不涉及 | CATEGORY_LOCATION_SHARING | CATEGORY_LOCATION_SHARING | 阿里通道 |
内容推荐 | MARKETING | CATEGORY_RECOMMENDATION | CATEGORY_RECOMMENDATION | SDK≥3.8.7 在线阿里通道,离线华为通道, SDK<3.8.7 华为通道 |
新闻 | ||||
财经动态 | ||||
生活资讯 | ||||
调研 | ||||
其他 | ||||
社交动态 | CATEGORY_SOCIAL | CATEGORY_SOCIAL | ||
产品促销 | CATEGORY_PROMO | CATEGORY_PROMO | ||
功能推荐 | ||||
运营活动 |
推送效果和数据获取
阿里通道送达
数据在端侧MessageReceiver的继承类中获取。
弹框样式可自定义,依赖MessageReceiver弹出。
华为通道送达
数据在端侧AndroidPopupActivity的继承类onSysNoticeOpened中获取。
弹框样式不可自定义。依赖AndroidPopupActivity弹框。