ios APNS 消息一直接收不到解决办法
2016-11-19 15:31
507 查看
下午的时候,我们的测试环境一直接收不到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 环信透传cmd消息多次重复接收,解决办法
- iOS使用AFNetworking的POST上传数据到服务器,服务器接收不到的原因和解决办法
- win32关于对话框处理不到WM_KEYDOWN消息的解决办法(注:非MFC)
- iOS—接收到APNs远程推送消息时的处理流程
- 对于ble ios作为中心设备收不到蓝牙外设广播信息的解决办法
- 后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
- Android Handler Message 在使用多个Handler时,接收不到消息的处理办法
- Formview单文档或对话框项目接受不到按键消息的解决办法
- AngularJs中$http发送post或者get请求,SpringMVC后台接收不到参数值的解决办法
- springmvc后台接收不到图片解决办法
- Xcode使用Archive打包,一直在读取iOS Apps,导致速度太慢的解决办法
- Unity项目接收不到android的KeyEvent的解决办法
- 解决Win7系统下以管理员身份运行的程序接收不到拖放文件消息[WM_DROPFILES]问题的方法
- win32收不到F10按键消息解决办法
- 接收不到消息WM_LBUTTONDBLCLK的解决方法
- 网页DIV接收键盘按键消息解决办法
- iOS 把数据库文件打包到mainbundle中,查找不到路径的解决办法;以及在删除bundle中文件的可行性
- ios 测试环境证书 收不到通知栏的APNS消息
- 启动任务StartTask() 发送完消息队列 自己删除,接收方一直显示数据 用OSQFlush(Str_Q); //清空消息队列 下面纠结接收不到了 哈哈
- iOS注册远程推送消息证书后提示此证书签发者无效的解决办法