极光推送集成总结

项目中因为好多地方要使用到通知,对比了好几个推送的sdk,最后还是选择了极光推送,从稳定性和集成方便来说,那是没问题的

极光推送 官网
文档地址: https://docs.jiguang.cn/jpush/client/iOS/ios_sdk/

注册完账号,添加应用,配置对应的开发环境和生产环境的p12证书,APP集成完毕之后,就可以通过控制台发送通知测试集成是否成功,如果是高峰期,极光推送可能会有一定的延迟,20分钟左右都是正常的,耐心等待一些
下面是APP启动初始化sdk的代码
-(void)registerRemoteWithOptions:(NSDictionary *)launchOptions
{
    //Required
    //notice: 3.0.0及以后版本注册可以这样写,也可以继续用之前的注册方式
    JPUSHRegisterEntity * entity = [[JPUSHRegisterEntity alloc] init];
    entity.types = JPAuthorizationOptionAlert|JPAuthorizationOptionBadge|JPAuthorizationOptionSound;
    if (IOS8) {
        // 可以添加自定义categories
        // NSSet *categories for iOS10 or later
        // NSSet *categories for iOS8 and iOS9
    }
    [JPUSHService registerForRemoteNotificationConfig:entity delegate:self];
    
    
    // Required
    // init Push
    // notice: 2.1.5版本的SDK新增的注册方法,改成可上报IDFA,如果没有使用IDFA直接传nil
    // 如需继续使用pushConfig.plist文件声明appKey等配置内容,请依旧使用[JPUSHService setupWithOption:launchOptions]方式初始化。
    
    [JPUSHService setupWithOption:launchOptions appKey:JPushAppKey
                          channel:@"App Store"
                 apsForProduction:isProduction
            advertisingIdentifier:nil];
    
    //2.1.9版本新增获取registration id block接口。
    [JPUSHService registrationIDCompletionHandler:^(int resCode, NSString *registrationID) {
        if(resCode == 0){
            NSLog(@"registrationID获取成功:%@",registrationID);
        }
        else{
            NSLog(@"registrationID获取失败,code:%d",resCode);
        }
    }];
}
控制台推送的时候,如果APP角标不自增,是推送的时候把badge 一直默认为 1 了,应该设置为 +1
控制台角标设置
如果是想推送给自己服务器的某个用户,需要服务器那边对接并且在登录的时候,返回一个当前用户的id,专门用来推送给某个用户的,
[JPUSHService setAlias:[NSString stringWithFormat:@"%@",user_id]  callbackSelector:nil object:nil];

你可能感兴趣的:(极光推送集成总结)