ios APNS 消息一直接收不到解决办法

   下午的时候,我们的测试环境一直接收不到APNS的消息(早上的时候收到了两条)。经过处理最后解决了问题,记录下,其他码龙朋友看到的话,也可以参考参考下。

具体有如下几条来排除问题的方案:
1.首先确保打开当前APP的消息推送允许设置。(Iphone设置里面打开,允许APP接收推送消息)

2. 打印下deviceToken看看是否有值,或者直接在下面注册成功的函数里面打个断点,看程序进不进来,单步调试下。
  (一般来说,只要deviceToken有值,就说明APNS已经注册成功了。否则的话,要去研究并且添加下APNS注册函数。
同时应该注意,有deviceToken返回,也不一定实时收到APNS的推送消息(因为我们牛逼的greatewall,或者网络丢包)。多推几条信息,就可以收到,一般来说APNS到达率还是可以的。)

我的程序没有deviceToken打印出来,在下面这个函数里面打断点也没有进来。

3.确保当前登陆的手机号唯一登陆APP,一个手机号多个APP登陆的话,有可能也会收不到。

4.重新推出APP,重新登录下。(意味着重新注册下APNS)

5.实在还是没有deviceToken的话,把当前的APP删除,重新装一下。---我是用这种办法,有了deviceToken,然后有了APNS的推送

注册成功后,Apple会返回一个全球唯一的deviceToken给手机客户端,然后通过下面的函数,就可以捕获。

- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    //发送token给服务端
    if (deviceToken)
    {
        currentDeviceToken = [[[[deviceToken description]stringByReplacingOccurrencesOfString:@"<" withString:@""]stringByReplacingOccurrencesOfString:@">" withString:@""]stringByReplacingOccurrencesOfString:@" " withString:@""];
        
//        UIAlertView *alterView = [[UIAlertView alloc] initWithTitle:@"" message:currentDeviceToken delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
//        [alterView show];
         NSLog(@"deviceToken:________%@",currentDeviceToken);
    }
}


注册失败,会通过下面的函数来返回注册失败的错误原因
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
    NSLog(@"注册推送失败:%@",error);
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值