顾名思义,就是从远程服务器推送给客户端的通知(须要联网)远程推送服务,又称为APNs(Apple Push Notification Services)git
Provider就是咱们公司的服务器,通过苹果的APNs服务器找到咱们的设备,给咱们设备上的客户端应用推送消息。那APNs服务器是如何找到咱们的设备和设备上的应用呢,答案就是DeviceToken,DeviceToken须要配置推送证书才能够得到,推送证书须要知道咱们的APP ID(应用的BundleID,应用惟一标识)和UDID(设备惟一标识),还有本身服务器的UDID,咱们先来打一个推送证书,登陆开发者中心,点击证书模块github
点击iOS Apps的证书服务器
进入这样的界面app
点击App IDs,而后点右上角的加号ide
箭头所指为应用ID描述,咱们假设写了一个很牛逼的应用,ExcitedApp,接下来咱们填入App ID,注意这里的App ID是固定的,不能有星号测试
接下来咱们添加App所须要的服务,而后点击Continuespa
一直点击下一步,完成,在App IDs 列表里面找到咱们的ExcitedApp,咱们看到3d
发现Push服务是黄色警告,这时点击Edit,找到推送模块,咱们须要配置推送证书了,点击红色箭头所指的位置调试
咱们须要一个CSR文件,CSR是一个签名请求文件,意思就是让咱们的MAC具备调试推送的权限,点击继续code
点击了继续咱们看到
而后咱们打开Mac上的钥匙串,从证书颁发机构请求证书
前两个随便写,最后选择存到磁盘
完成以后,接下来咱们就能够添加CSR文件了
添加完,选择生成
证书配好了,下载下来
配好了!
顺带着咱们把发布的证书也给配了,步骤都同样
打开咱们刚刚下载的证书,添加到钥匙串中
终于能开始整咱们的项目了,快哭了都
不要忘记修改bundle id 这里还要搞一个真机调试的证书才能够
真机调试的东西这里不累述,搞了这么多东西,咱们终于能够拿到DeviceToken了
在AppDelegate.m中注册推送
1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 2 3 UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert ; 4 5 UIUserNotificationSettings * setting = [UIUserNotificationSettings settingsForTypes:types categories:nil]; 6 [[UIApplication sharedApplication] registerUserNotificationSettings:setting]; 7 8 return YES; 9 }
1 -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 2 { 3 NSLog(@"%@",deviceToken); 4 }
接下来咱们用PushMebaby来测试一下咱们的推送:https://github.com/stefanhafeneger/PushMeBaby/
将咱们的推送证书添加到项目目录
接下来手机上就能够收到推送了