iOS之App远程推送APNs(二)
2015-12-06 00:24
411 查看
APNS(英文全称:Apple Push Notification Service),中文翻译为:苹果推送通知服务。 该技术由苹果公司提供的APNS服务。
当我们的App在发布之前我们会向苹果服务器申请为应用添加远程服务推送,下面为大家粘贴注册APNs服务的代码作为参考:
我们将获取的Token值做简单的处理(将里面的空格和括号删除):
5d3451a61ba4786f13880005720e2c266eb9dc541c3936e9ae4c850c23a0c5ef
将这个Token值Post给服务器和P12文件(包括开发阶段和发布阶段两个文件)传给后台处理。
Token:将苹果iOS设备的UDID和App应用的BendleID通过证书颁发机构生成的CSR证书绑定后,产生SSL证书向苹果APNs服务器提出申请获取唯一的标示Token,将Token返回到App应用上,程序员再将Token进行简单处理的Token值和P12证书传给自己的服务器,服务器进行处理把信息发送到APNs,APNs将消息推送给App用户。
另附推送原理图:
根据图片我们可以概括一下:
1、应用程序App注册APNS消息推送。
2、iOS从APNS Server获取devicetoken,应用程序App接收device token。
3、应用程序App将device token发送给程序的PUSH服务器(后台)。
4、程序的PUSH服务器向苹果APNS服务发送消息。
5、APNS服务将消息发送给应用程序App。
注释:
SSL:根据CSR生成的aps_development.cer的SSL证书和SSL发布证书
Private Key:生成证书时的秘钥
当我们的App在发布之前我们会向苹果服务器申请为应用添加远程服务推送,下面为大家粘贴注册APNs服务的代码作为参考:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //注册远程推送到苹果的服务器,如果注册成功,App推送服务器会给我们返回一个token值 if ([[[UIDevice currentDevice] systemVersion] floatValue] < 8.0) {//ios8之前和之后设备的推送方式不同 [application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge|//推送的信息数量 UIRemoteNotificationTypeSound|//推送的声音 UIRemoteNotificationTypeAlert)];//推送的提示框 }else { UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes: (UIRemoteNotificationTypeBadge| UIRemoteNotificationTypeSound| UIRemoteNotificationTypeAlert) categories:nil]; [application registerUserNotificationSettings:settings]; [application registerForRemoteNotifications]; } return YES; } #pragma mark 远程推送的回调方法 //远程推送注册成功的回调方法 - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{ NSLog(@"%s",__FUNCTION__); NSLog(@"deviceToken:%@",[NSString stringWithFormat:@"%@",deviceToken]); //返回的Token值:deviceToken:<5d3451a6 1ba4786f 13880005 720e2c26 6eb9dc54 1c3936e9 ae4c850c 23a0c5ef> } //推送失败的回调方法 - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{ NSLog(@"%s",__FUNCTION__); }
我们将获取的Token值做简单的处理(将里面的空格和括号删除):
5d3451a61ba4786f13880005720e2c266eb9dc541c3936e9ae4c850c23a0c5ef
将这个Token值Post给服务器和P12文件(包括开发阶段和发布阶段两个文件)传给后台处理。
Token:将苹果iOS设备的UDID和App应用的BendleID通过证书颁发机构生成的CSR证书绑定后,产生SSL证书向苹果APNs服务器提出申请获取唯一的标示Token,将Token返回到App应用上,程序员再将Token进行简单处理的Token值和P12证书传给自己的服务器,服务器进行处理把信息发送到APNs,APNs将消息推送给App用户。
另附推送原理图:
根据图片我们可以概括一下:
1、应用程序App注册APNS消息推送。
2、iOS从APNS Server获取devicetoken,应用程序App接收device token。
3、应用程序App将device token发送给程序的PUSH服务器(后台)。
4、程序的PUSH服务器向苹果APNS服务发送消息。
5、APNS服务将消息发送给应用程序App。
注释:
SSL:根据CSR生成的aps_development.cer的SSL证书和SSL发布证书
Private Key:生成证书时的秘钥
相关文章推荐
- Android下在终端上运行命令提示no such tool的解决方法
- Android之Widget小组件
- ios应用数据存储方式(Coredata)
- iOS -NSOperation——高级的并发处理方法
- android的数据存储(一)
- Android - broadcast receiver and supports-gl-texture
- nagios 插件ndoutils 安装配置
- Swift-使用UIScreen类获取屏幕尺寸
- Swift-解决Navigation导航栏遮挡住view内容的问题
- adb常用命令的使用
- “cannot resolve symbol R” in Android Studio
- Android磨砂效果
- java泡妞小程序
- iOS开发CoreAnimation解读之五——高级动画技巧
- iOS开发CoreAnimation解读之六——CATransform3D变换的应用
- android解析和生成XML文件
- Android 字体设置-Typeface讲解
- Swift中常见类扩展
- ios应用数据存储方式(归档)
- 微信语音识别和语义理解接口