远程推送的基本过程

1、客户端app需要将用户的UDID和应用程序的bundleID发送给APNS服务器进行注册,APNS服务器将加密后的device Token发送给客户端

2、app获取到device Token后上传给自己的服务器

3、当需要发送推送通知时,公司服务器将device Token和需要推送的内容发送给苹果的APNS服务器

4、APNS再将相应的内容发送到客户端上

远程推送需要创建证书,创建证书的流程如下:

1、打开钥匙串,生成CertificateSigningRequest.certSigningRequest文件

2、将CertificationSigningRequest.certSigningRequest上传到developer,导出.cer文件

3、利用CSR导出P12文件

4、准备设备值

5、使用OpenSSL服务器使用的推送证书

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions //中注册远程通知
{
     [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
}

//获取deviceToken令牌  
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken  
{  
     //获取设备的deviceToken唯一编号  
     NSLog(@ "deviceToken=%@" ,deviceToken);  
     NSString *realDeviceToken=[NSString stringWithFormat:@ "%@" ,deviceToken];  
     //去除<>  
     realDeviceToken = [realDeviceToken stringByReplacingOccurrencesOfString:@ "<"  withString:@ "" ];  
     realDeviceToken = [realDeviceToken stringByReplacingOccurrencesOfString:@ ">"  withString:@ "" ];  
     NSLog(@ "realDeviceToken=%@" ,realDeviceToken);  
     [[NSUserDefaults standardUserDefaults] setValue:realDeviceToken forKey:@ "DeviceToken" ];   //要发送给服务器
}  
-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error  
{  
     //注册远程通知设备出错  
     NSLog(@ "RegisterForRemoteNotification error=%@" ,error);  
}  
//在应用在前台时受到消息调用  
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo  
{  
    //打印推送的消息  
     NSLog(@ "%@" ,[[userInfo objectForKey:@ "aps" ] objectForKey:@ "alert" ]):  
}
使用开发和发布证书获取到的deviceToken是不一样的。

一般我们使用开发版本的Provisioning做推送测试,如果没有问题再使用发布证书推送一般也是没有问题的,以防万一,我们可以使用越狱的手机安装ipa(最好使用debug版本,并打印获取device token),可以在Xcode-》window-》Orgnazer找到对应设备查看console找到对应的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值