iOS极光推送 使用API方式推送收不到信息

ios
标签: #<Tag:0x00007fb839ab2ea0>

(lmssll) #1

推送使用registration_id是1517bfd3f7f8c8fdb87
平台返回结果是{“sendno”:“0”,“msg_id”:“1521207951”}",“retcode”:"",“rpctype”:“http”,“stm”:“2017-12-19 16:11:00.154”,“utm”:“1137”}

但是手机一直收不到信息,请帮忙查看一下


#2

极光这边已经将消息发给了Apple服务器,你如果确认没收到,是Apple服务器没有下发,几个原因:
1、网络异常,无法连接到Apple服务器(此处与你是否手机可以正常上网是不一样的),Apple服务器对断连期间 的推送,只会保留1条,其他会丢弃。 可尝试切换网络
2、手机-通知栏提醒-提醒样式
3、调用了反注册代码 [[UIApplication sharedApplication] unregisterForRemoteNotifications];或者
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]是可以进入应用设置页面使用户可以手动变更是否允许通知的设置。不手动操作不会直接关掉推送
4、注册apns代码中有提供类型选择:
entity.types = JPAuthorizationOptionAlert|JPAuthorizationOptionBadge|JPAuthorizationOptionSound; 你没有写上alert
5、iOS10以下,处于前台,收到消息是不会展示的,log会打印,iOS10以上才有提供接口,在前台展示通知
6、push Notification没开
7、App端配置的通配证书
8、高峰期Apple下发有延迟
9、检查清除角标的方法是否影响了消息的展示,角标清除,通知栏信息就没了。
10、不要特别频繁的快速的间隔很小的推送消息,再重测一下看看。

具体排查总结阅读:
1、 常见问题 - JPush 合集(持续更新)
2、 常见问题 - JPush 合集(持续更新)


(lmssll) #3

可是在Web页上用这个id推送就马上能收到啊。。。


(lmssll) #4

真心搞不懂了


(lmssll) #5

{
“audience”:{
“registration_id”:[
“191e35f7e07a2dea411”
]
},
“notification”:{
“ios”:{
“alert”:{
“body”:"[测试]测试"
},
“extras”:{
“actionid”:“3001”,
“msgid”:“1111”,
“triggerid”:“1”,
“typeid”:“2001”,
“url”:“测试”
}
}
},
“options”:{
“apns_production”:false
},
“platform”:[
“ios”
]
}
可以看下这个请求报文有没有问题嘛?


#6

我查询的结果是已经发出的,你的内容没有什么问题,尝试将alert的body去掉,直接对alert赋值试下


(lmssll) #7

刚才我发请求报文的那一条消息现在才收到。。。。汗

但是之前所有的消息都没有


#8

那就可能是延迟问题


(lmssll) #9

请问一下 服务端API设置的tag和客户端设置的tag会互相覆盖么?


#10

你用的 set 方式自然就是覆盖的,用add新增的方法就是新增。

都是针对同一个设备做操作,信息是互通的


(lmssll) #11

那现在我有一个tag,有办法可以查看到tag中所有的registration_id吗


#12

没有提供这样的接口。