一、别名推送
//设置别名的主要代码
[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这个字段的统一;如果这些确定了没问题,还是收不到通知,就去检查推送证书是否已经失效,重新上传有效证书即可。