iOS之App远程推送APNs(二)

APNS(英文全称:Apple Push Notification Service),中文翻译为:苹果推送通知服务。 该技术由苹果公司提供的APNS服务。
当我们的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:生成证书时的秘钥

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值