老板要做推送 现在准备用第三方 极光推送
1. 先去开发者账号 来到Certificaters 生成两个证书 (调试用的推送证书 + 发布程序用的推送证书) 记得点击Push属性
证书的作用 : 告知苹果苹果服务器是哪台Mac在调试或者发布可推送程序
所以生成证书必须要 上传CSR文件,生成完两个证书后,下载到本地双击,备用。
来到钥匙串,把对应的两个证书,导出为p12文件,此时需要你填写密码,不要随便设置,极光推送上传p12文件的时候,会要求输入密码。
如何生成CSR文件:
在钥匙串中我们点击我们电脑左上角的钥匙串选项,在选项中选在证书助理选项中的从证书颁发机构请求证书选项.
随便填,保存到磁盘即可(后续要上传生成证书)
2.生成完证书,来到Identifies,要生成你的AppID,需要证书+应用的BundleID 即告知苹果服务器 哪台电脑开发的哪个程序
3.描述文件: 用来发布程序 或者 调试程序使用的 需要AppID 以及 设备号 即 哪台电脑开发的哪个程序哪些设备可以使用,生成完之后,下载到本地,双击即可。
4.现在来到极光推送的官网,创建新应用,应用名称最好和自己的应用程序名称一致,之后上传第1个步骤的的两个p12文件,成功后会显示“已验证”。
5.配置极光的SDK,官网说的很清楚,跟着做就可以了。
6.粘贴极光推送必须要用的3个方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
//categories
[APService
registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
UIUserNotificationTypeSound |
UIUserNotificationTypeAlert)
categories:nil];
} else {
//categories nil
[APService
registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert)
#else
//categories nil
categories:nil];
[APService
registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert)
#endif
// Required
categories:nil];
}
[APService setupWithOption:launchOptions];
return YES;
}
此处的userInfo就是推送来的消息 打印出来的格式为字典 可以根据字典传来的信息进行页面跳转
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler {
// IOS 7 Support Required
if (application.applicationState == UIApplicationStateActive) {
//程序处于前台
NSLog(@"active");
//把icon上的小图标设置为0
[application setApplicationIconBadgeNumber:0];
}
NSLog(@"userInfo %@",userInfo);
[APService handleRemoteNotification:userInfo];
completionHandler(UIBackgroundFetchResultNewData);
}
//获取DeviceToken成功
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
// Required
[APService registerDeviceToken:deviceToken];
}
7.补充,极光推送在发送消息时,可以点击可选设置,增加字段