关于ios的消息撤回疑问 -- 已解决

ios
jpush
api
标签: #<Tag:0x00007fb83f56bd60> #<Tag:0x00007fb83f56ba40> #<Tag:0x00007fb83f56b798>

(zaqwsx2541) #1

调用接口为rest api Push API v3
例 当有3条消息已成功推送 需要覆盖第二条时 正确的将override_msg_id传入 安卓会正常的将第二条替换掉 ios则会将这3条替换为1条 ios端需要怎么处理这种情况呢?


#2

(zaqwsx2541) #3

apns_collapse_id 这个参数 在php的sdk中并没设置的地方


#4

升级你的SDK版本
更新说明:


(zaqwsx2541) #6
->options(array(
'override_msg_id' => $msg_id,
'apns_production' => true,
'apns_collapse_id' => (string)$msg_id,
));

options中这样填写 ios还是把3个都去了


#7

没有理解你这句话的意思。


(zaqwsx2541) #8

就是推送了3条消息 我想替换第二条的内容 apns_collapse_id填的第2条的msd_id 又推送了一次 结果之前的三条推送只剩了最新的1条


#10

我用demo,官网做如下测试,显示正常
1、alert:测试apns_collapse_id为1;badge:+1;apns_collapse_id:1
2、alert:测试apns_collapse_id为2;badge:+1;apns_collapse_id:2
3、alert:更新测试apns_collapse_id为1;badge:+1;apns_collapse_id:1
第三步会更新第一条消息,并置顶;且第二条消息不会消失

你另外注意你客户端badge的处理,badge的设置会影响通知栏消息的展示或者消失。


(zaqwsx2541) #11

哦 是badge的问题 只有+1的时候才可以实现 谢谢 麻烦了


#12

不是,只是我测试的+1,我刚刚测试固定为1等数值也是OK的,就是不知道你之前整个的测试的badge设置了什么,或者第一条设置了什么,第二条设置了什么,第三条设置了什么,以至于对消息的展示有影响。

以及你可以用你刚刚的测试方式 去测试demo,或者告知我,我也测下demo,找到是badge在推送的传值问题还是你们自己客户端对收到消息后badge的处理造成的。


(zaqwsx2541) #14

我是按消息读没读计算badge的 第一条 1 第二条 2 第三条 3 撤销第二条 这3条消息没读时 给了3


#15

不是特别理解你的测试过程

但我用demo测了多次,功能都是正常的

只有在badge传为0且apns-collapse-id设置一个此前消息都没有设置过的值时,通知栏的消息才会集体消失

那可能是你自己客户端的角标处理有影响,你看下demo呢,或者看怎么优化下你的工程的角标的设置。


(zaqwsx2541) #16

ok
谢谢谢谢