iPhone 关机再开机之后收不到之前的 APNs 推送

2017-05-09 10:51:56 +08:00
 binauyang

在关机后给 iPhone 推一条 APNs,再开机却没有收到; 微信是可以的。 苹果文档上这么写的:If APNs attempts to deliver a notification but the device is offline, the notification is stored for a limited period of time, and delivered to the device when it becomes available. 有知道的么?望指教

3127 次点击
所在节点    iOS
16 条回复
jiangzhuo
2017-05-09 10:54:35 +08:00
苹果会隔段时间重试,重试间隔一次比一次长,最后就不试了。反正苹果没说推送策略,也可能在 1s 内重试 1 次就不重试了,反正苹果没有许诺保证什么。
binauyang
2017-05-09 10:56:16 +08:00
@jiangzhuo 那开机之后能收到微信的推送是怎么做到的...
paradoxs
2017-05-09 10:59:01 +08:00
apns 里面加一个 token 手机收到后用接口传一下 代表收到了 不传的话 XX 时间内重发
binauyang
2017-05-09 11:01:53 +08:00
@paradoxs 没太明白,能解释详细点么?
paradoxs
2017-05-09 11:06:40 +08:00
@binauyang
{
"aps" : { "alert" : "message" },
"UserInfo" : [ "key", "value" ]
}
userinfo 里面加个 key, 作为这一次推送的 id, 在手机收到推送后, 解开 userinfo,把 key 拿出来, 然后往接口传一下, 代表这次推送完成了.
binauyang
2017-05-09 11:13:01 +08:00
@paradoxs 但是如果不打开客户端的话,客户端一直是被杀死的状态,也就无法去做解析 userinfo 这样的操作了呀。
paradoxs
2017-05-09 11:14:29 +08:00
@binauyang 那就重发呗.
binauyang
2017-05-09 11:17:10 +08:00
@paradoxs 那这样不就会重复给客户端推送了么...你的意思我了解,就是客户端收到推送后告诉后台“我收到了”,如果在规定时间内后台没有收到客户端的“收到回复”,则重发;但是客户端其实一直被杀死的状态,所以无论是否收到推送都无法告知后台...
paradoxs
2017-05-09 11:18:15 +08:00
@binauyang 不会重复推送的啊. deviceToken 和账号的登录状态是绑定的. 你是给账号推, 又不是给客户端推.
paradoxs
2017-05-09 11:21:39 +08:00
@binauyang 如果 deviceToken 对应的账号, 登录状态不对, 就不发!
mornlight
2017-05-09 11:26:00 +08:00
@paradoxs #9 楼主说的事情和客户端无关。

这个问题我不能给出确定的答案,Remove notification 有 Priority 和 Expiration date 这两个标记,也许有关。
binauyang
2017-05-09 11:37:25 +08:00
@mornlight #11 确实!试了下设置 expire date,有效果!感谢撒花!!!
binauyang
2017-05-09 11:53:45 +08:00
我用的是 pushy( https://github.com/relayrides/pushy)
SimpleApnsPushNotification 的构造方法中有个参数是 Date invalidationTime,意义是:the time at which Apple's servers should stop trying to deliver this message. 即该条推送的有效期,如果不设置的话,只会尝试投递一次。
13036101641
2017-05-10 09:39:52 +08:00
你这个 expire date 设置了多久?
binauyang
2017-05-10 10:25:15 +08:00
@13036101641 #14 看你自己啊,我设置了一天,如果一天都不开机,就不给他推了 2333
shawkex
2020-07-15 11:12:25 +08:00
@binauyang 如果登录了才重推,那登录了都可以收长链消息和主动拉取了,那还有什么意义

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/360047

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX