我是靠谱客的博主 威武故事,最近开发中收集的这篇文章主要介绍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);
}


最后

以上就是威武故事为你收集整理的ios APNS 消息一直接收不到解决办法的全部内容,希望文章能够帮你解决ios APNS 消息一直接收不到解决办法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部