iOS极光推送集成注意事项

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JennyHermes/article/details/75205739

一、别名推送

//设置别名的主要代码

[JPUSHService setAlias:string callbackSelector:@selector(tagsAliasCallback:tags:alias:) object:self];
- (void)tagsAliasCallback:(int)iResCode tags:(NSSet *)tags alias:(NSString *)alias
{
//iResCode返回为0时,代表设置别名成功;
}


//**极光jpush新版本中的方法**
 [JPUSHService getAlias:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) {

                NSLog(@"iResCode == %ld, iAlias == %@",(long)iResCode,iAlias);

    if (![iAlias isEqualToString:@"你想要设置的别名"){
                    //设置别名
                    [JPUSHService setAlias:@"你想要设置的别名" completion:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) {

                         NSLog(@"callBackTextView %@",[NSString stringWithFormat:@"code%ld, \ncontent: %@, \nseq: %ld\n", (long)code, content, (long)seq]);

                    } seq:0];

                }

            } seq:0];

注:别名设置成功后除非再次设置把之前的别名覆盖,否则会一直存在,所以,没有必要每次都调用设置的方法,先调用拿到别名的方法,判断是否跟之前的别名一致,如果不一致再设置。


//删除别名
[JPUSHService deleteAlias:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) {

 NSLog(@"callBackTextView %@",[NSString stringWithFormat:@"code%ld, \ncontent: %@, \nseq: %ld\n", (long)code, content, (long)seq]);

    } seq:0];
打印信息:callBackTextView code0, 
content: (null), 
seq: 0

注:***不能用[JPUSHService setAlias:@"" completion:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) {
} seq:0]这种方法删除别名***,因为极光文档中规定有效的别名不能设置nil或者空字符串@""

坑1:设置别名的方法不要直接在- (void)viewDidLoad中直接调用,而且最好是延迟调用;

因为该方法在程序开始运行的时候就会调用,如果不延迟调用,页面还未加载就已经调用了该方法,会导致设置别名失败。

二、apsForProduction

apsForProduction

是1.3.1版本新增,用于标识当前应用所使用的APNs证书环境。
0 (默认值)表示采用的是开发证书,1 表示采用生产证书发布应用。

坑2:在测试时,要分清是测试环境还是生产环境后台该字段的值也要与移动端保持一致

三、移动端收不到通知

如果出现移动端接收不到通知,而后台显示发送成功的问题:
首先,检查配置环境是否都配置妥当,按照官方文档的步骤设置即可;其次检查代码中的调用方法是否正确,尤其是apsForProduction这个字段的统一;如果这些确定了没问题,还是收不到通知,就去检查推送证书是否已经失效,重新上传有效证书即可。

猜你喜欢

转载自blog.csdn.net/JennyHermes/article/details/75205739