由于华为厂商的限制,通知栏满24条推送后,再推送新的通知会接收不到,必须清除之前收到的通知,才可以继续接收新的通知。
通知消息到达终端设备展示后,如果用户没有点击或者清理,支持新来的消息覆盖掉之前展示的消息。可以通过服务端提供的API来设置实现。有三种方式:
指定“tag”,指定“notify_id”,指定“group”三个功能是互斥的,只能三选一。如果都设置,优先级是:“group”>“tag”>“notify_id”。
华为通知消息展示覆盖文档:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/android-disp-overwr-0000001050042077-V5
极光通道可以通过override_msg_id传msgid来实现覆盖消息,每次推送传入前一条推送msgid,但是没有办法保留多条,通知栏只能有一条。
下面是测试华为覆盖通知的过程
之前是直接集成极光的厂商,发现华为和极光的鉴权方式还不太相同。
我直接用postman进行测试的,先获取access_token,注意这个有时效性,3600s过期,过期后需要重新获取。
参考华为鉴权文档:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/open-platform-oauth-0000001053629189-V5#ZH-CN_TOPIC_0000001053629189__section12493191334711
调用推送接口进行推送,测试发现添加tag,发现可以覆盖之前推送的相同tag的通知。
华为发送下行消息文档https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/android-server-dev-0000001050040110-V5
网友评论