Push - options(可选参数) 中提供了对应字段

Android :override_msg_id

推送规则:

  • 推送消息 A,产生 MessageID1;

  • 推送消息 B,产生 MessageID2;(此时希望覆盖消息 A,传递 MessageID1)

  • 推送消息 C,产生 MessageID3;(此时希望覆盖消息 B,依旧传递 MessageID1)

  • 每次传递的都是最原始产生的那个 MessageID

效果:

  • 该 MessageID 离线收到的消息是覆盖后的内容;

  • 即使该 MessageID Android 端用户已经收到,如果通知栏还未清除,则新的消息内容会覆盖之前这条通知;

  • 覆盖功能起作用的时限是:1 天。如果在覆盖指定时限内该 MessageID 不存在,则返回 1003 错误,提示不是一次有效的消息覆盖操作,当前的消息不会被推送。

iOS :apns_collapse_id

规则:

  • collapse id 长度不可超过 64 bytes。

  • 推送消息 A,在可选字段中传值apns_collapse_id1;

  • 推送消息 B,此时希望更新消息 A ,则在可选字段中传值apns_collapse_id1

效果:

  • APNs 新通知如果匹配到当前通知中心有相同 apns-collapse-id 字段的通知,则会用新通知内容来更新它,并使其置于通知中心首位。

注:Android 覆盖消息不支持「将其置于通知中心首位」这一效果

避免重复请求

极光提供了 CID 帮助大家避免重复请求推送消息

撤销消息

若不小心重复推送了消息,可以调 API 撤销。
API 文档介绍:https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/#_27

撤销操作首先会从服务端尝试撤销(Android消息,排队中/发送中状态可以服务端撤销;iOS消息,排队中状态可以服务端撤销);其次,针对 Push SDK(JPush Android SDK v3.5.0 及以上和 JPush iOS SDK v3.2.8 及以上),会尝试从设备端撤销已展示但未被点击的消息。


如果对你有帮助,点个赞 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ