跳至主要内容

博文

目前显示的是 六月, 2013的博文

iOS 推送处理的的一种实践

前段时间的WWDC推了 iOS 7 出来,作为一个穷苦的码农我还没有好的idea迫使我去申请一个开发者账号(因果关系搞反了=_=),所以就没有beta版可以玩了,对于它的风格改动,我还是持支持的,毕竟苹果把很多越狱插件的功能都做进系统中了,我也没什么越狱的欲望了。言归正传,后面的内容是只针对 iOS 6 的。 本文首先会介绍一下iOS推送通知的使用和推送流程,然而文中重点是我对iOS接收到通知后的处理方法。一般而言,推送通知可以只做文本提示,应用可以完全不处理推送通知的内容,但我们也可以利用推送通知去做更多的操作,如界面跳转。比如微信,我通过推送通知打开微信的时候,微信会直接帮我条到对话界面,而不需要我慢慢手动点进去。 推送流程 完成推送通知需要后端服务器的支持,主要过程是: 用户启动应用后,选一个时机获取苹果的token 收到这个token后,系统会application:didRegisterForRemoteNotificationsWithDeviceToken:这个方法,让我们处理这个方法 把token发给后端存好 后端使用各种连接apns的框架就可以实现消息推送了 这里只说明大概的过程,但后面的内容比较专注于处理推送消息的内容,后端的内容可以找其他文章。 推送注册 调用这个方法,就可以获取一个推送token,这个token,是与应用、手机相关联的。 [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 在刚刚提到的方法中自由处理一下就可以了 - (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { //do something } 接受推送通知方法 点击推送通知打开应用,会出现以下两个情况: 应用没有启动过,或呆在后台已经有一段时间(...