美文网首页
17远程推送

17远程推送

作者: i爱吃土豆的猫 | 来源:发表于2018-03-25 23:56 被阅读14次

当服务端远程向APNS推送至一台离线的设备时,苹果服务器Qos组件会自动保留一份最新的通知,等设备上线后,Qos将把推送发送到目标设备上。

1.远程推送的基本过程:

  • 1.客户端的app需要将用户的UDID和app的bundleID发送给APNS服务器,进行注册,APNS将加密后的device Token返回给app

  • 2.app获得device Token后,上传到公司服务器

  • 3.当需要推送通知时,公司服务器会将推送内容和device Token一起发给APNS服务器

  • 4.APNS再将推送内容送到客户端上

2.创建证书的流程:

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

2.将CertificateSigningRequest.certSigningRequest上传进developer,导出.cer文件

3.利用CSR导出P12文件

4.需要准备下设备token值(无空格)

5.使用OpenSSL合成服务器所使用的推送证书

本地app代码参考

1.注册远程通知
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions//中注册远程通知
{
     [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
}
2.实现几个代理方法:
//获取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"]):  
}
3.配置后台模式

一般我们是使用开发版本的Provisioning做推送测试,如果没有问题,再使用发布版本证书的时候一般也应该是没有问题的。为了以防万一,我们可以在越狱的手机上安装我们的使用发布版证书的ipa文件(最好使用debug版本,并打印出获取到的deviceToken),安装成功后在;XCode->Window->Organizer-找到对应的设备查看console找到打印的deviceToken。

在后台的推送程序中使用发布版制作的证书并使用该deviceToken做推送服务.

使用开发和发布证书获取到的deviceToken是不一样的。

相关文章

  • 17远程推送

    当服务端远程向APNS推送至一台离线的设备时,苹果服务器Qos组件会自动保留一份最新的通知,等设备上线后,Qos将...

  • 远程通知推送教程

    远程通知推送教程 远程通知推送教程

  • 一些项目中可能只需要配置一次的东西吧

    本地推送&远程推送 1.远程推送 推送通知的分类远程推送通知本地推送通知 推送通知作用可以让不在前台运行的App告...

  • 本地推送通知、远程推送通知、激光推送

    title : 本地推送通知、远程推送通知、激光推送category : UI 本地推送通知、远程推送通知、激光...

  • 远程推送 和 本地推送

    一:远程推送 1.远程推送称为APNs 就是远程服务器推送给客户端的通知(需要联网) 2.为什么需要远程推送? 传...

  • iOS开发之远程推送

    远程推送通知 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为AP...

  • 远程推送(二): Android 的远程推送

    上篇文章介绍了iOS 远程推送的相关知识,这次来讲讲Android 的远程推送。 Android 远程推送几种常用...

  • 第十四章、消息相关

    说一下远程推送的流程。苹果怎么知道远程推送给哪台设备?又如何知道推送给哪个应用? iOS远程推送通过APNs实现。...

  • 推送通知-远程推送

    iOS远程推送通知 远程推送服务,APNs(apple push notification servers) 所有...

  • iOS远程推送

    远程推送流程概述 iOS远程推送是通过deviceToken进行的,拿到deviceToken需要注册远程通知,注...

网友评论

      本文标题:17远程推送

      本文链接:https://www.haomeiwen.com/subject/wgqlcftx.html