iPhone 关机再开机之后收不到之前的 APNs 推送 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
binauyang
V2EX    iOS

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

  •  
  •   binauyang 2017-05-09 10:51:56 +08:00 3618 次点击
    这是一个创建于 3080 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在关机后给 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 become available. 有知道的么?望指教

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

    这个问题我不能给出确定的答案,Remove notification 有 Priority 和 Expiration date 这两个标记,也许有关。
    binauyang
        12
    binauyang  
    OP
       2017-05-09 11:37:25 +08:00
    @mornlight #11 确实!试了下设置 expire date,有效果!感谢撒花!!!
    binauyang
        13
    binauyang  
    OP
       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
        14
    13036101641  
       2017-05-10 09:39:52 +08:00
    /div>
    你这个 expire date 设置了多久?
    binauyang
        15
    binauyang  
    OP
       2017-05-10 10:25:15 +08:00
    @13036101641 #14 看你自己啊,我设置了一天,如果一天都不开机,就不给他推了 2333
    shawkex
        16
    shawkex  
       2020-07-15 11:12:25 +08:00
    @binauyang 如果登录了才重推,那登录了都可以收长链消息和主动拉取了,那还有什么意义
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     923 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 20:55 PVG 04:55 LAX 13:55 JFK 16:55
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86