极光推送(一):通知的发布

    前段时间看过一个大神的分享后,很有体会,觉得作为程序员,最美好的事就是能够每天沉淀一些新的东西,本人,作为一个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)在极光平台选择发布推送通知,就可以获取到我们想要推送的相关内容啦


好了,关于极光推送(一):通知的发布全部内容就到这里。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值