- 在集成极光推送时,如果控制台打印类似下面这样的代码,说明你的极光集成成功了。
2017-04-27 11:30:26.577 | JIGUANG | I - [JIGUANGSessionController] connecting with coreAddr 103.229.215.19,port 7005
2017-04-27 11:30:26.947 | JIGUANG | I - [JIGUANGLogin]
----- login result -----
uid:9223034352
registrationID:171976fa8ab02c3f9eb
- 在极光集成成功的前提下,你如果发现在极光控制台发送广播(所有人)能成功,而指定tags/alias发送推送时失败,并且setTags:xxx方法不回调或不执行SEL。
- 原因:那么出现该问题的原因极光还没启动完毕,你就调用setTags:xxx方法了。
- 解决方法:使用dispatch_after函数,5秒之后再执行setTags:xxx方法就可以了。(实例代码如下)
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSString *userId = [NSObject getCurrentUserId];
NSLog(@"userId = %@", userId);
if ([userId isEqualToString:@""] || userId == nil) return;
NSMutableSet *tags = [NSMutableSet set];
if ([userId isEqualToString:@""] || userId == nil) return;
[self setTags:&tags addTag:userId];
NSString *alias = userId;
//[JPUSHService setTags:tags alias:alias callbackSelector:@selector(tagsAliasCallback:tags:alias:) target:self];
[JPUSHService setTags:(NSSet *)tags alias:(NSString *)alias fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {
if (iResCode == 0) {
NSLog(@"设置成功");
}else {
NSLog(@"设置失败");
}
NSLog(@"rescode: %d, \ntags: %@, \nalias: %@\n", iResCode, tags , alias);
}];
});