前段时间看过一个大神的分享后,很有体会,觉得作为程序员,最美好的事就是能够每天沉淀一些新的东西,本人,作为一个iOS开发三年经验的工程师,一直没有一个好的习惯,发现自己现在的记忆力越来越不好了,于是我希望自己能够通过坚持每天写博客,填补自己的记忆,同时也可以给有需要的新人一点点的帮助。
好了,言归正传,下面讲解极光通知相关的内容。
(1)去苹果官网配置相关证书,这里总结下,一共需要配置的有两大类,第一类是开发相关的(开发证书和配置本地的.p12开发证书);第二类是发布相关的(发布证书和.p12发布证书)。
注:1,生成.p12是为了上传到极光推送平台
2,注意选择APPID的时候加入push选项
(2)配置极光后台相关
1,注册开放平台账号
2,配置后台 主要是上传两个.p12文件
(3)代码工程配置
1,导入工程所需依赖裤
2,在AppDelegate.m里面添加
#import "JPUSHService.h"
#import <AdSupport/AdSupport.h>
3,在对应的方法里面实现相应的通知内容
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
NSString *advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
//Required
if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {
#ifdef NSFoundationVersionNumber_iOS_9_x_Max
JPUSHRegisterEntity * entity = [[JPUSHRegisterEntity alloc] init];
entity.types = UNAuthorizationOptionAlert|UNAuthorizationOptionBadge|UNAuthorizationOptionSound;
[JPUSHService registerForRemoteNotificationConfig:entity delegate:self];
#endif
}
else if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
//可以添加自定义categories
[JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
UIUserNotificationTypeSound |
UIUserNotificationTypeAlert)
categories:nil];
}
else {
//categories 必须为nil
[JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert)
categories:nil];
}
//Required
// init Push(2.1.5版本的SDK新增的注册方法,改成可上报IDFA,如果没有使用IDFA直接传nil )
// 如需继续使用pushConfig.plist文件声明appKey等配置内容,请依旧使用[JPUSHService setupWithOption:launchOptions]方式初始化。
[JPUSHService setupWithOption:launchOptions appKey:appKey
channel:channel
apsForProduction:isProduction
advertisingIdentifier:advertisingId];
//2.1.9版本新增获取registration id block接口。
[JPUSHService registrationIDCompletionHandler:^(int resCode, NSString *registrationID) {
if(resCode == 0){
NSLog(@"registrationID获取成功:%@",registrationID);
}
else{
NSLog(@"registrationID获取失败,code:%d",resCode);
}
}];
return YES;
}
//接下来进行极光注册操作
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"%@", [NSString stringWithFormat:@"Device Token: %@", deviceToken]);
[JPUSHService registerDeviceToken:deviceToken];
}
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:
(void (^)(UIBackgroundFetchResult))completionHandler {
[JPUSHService handleRemoteNotification:userInfo];
NSLog(@"iOS7及以上系统,收到通知:%@", [self logDic:userInfo]);
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"极光提示" message:userInfo[@"aps"][@"alert"] delegate:nil cancelButtonTitle:@"确定" oth erButtonTitles:nil, nil];
[alert show];
completionHandler(UIBackgroundFetchResultNewData);
}
(4)在极光平台选择发布推送通知,就可以获取到我们想要推送的相关内容啦
好了,关于极光推送(一):通知的发布全部内容就到这里。