极光setTags:xxx方法不执行回调/SEL

  • 在集成极光推送时,如果控制台打印类似下面这样的代码,说明你的极光集成成功了。
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);
        
    }];
        
    });

你可能感兴趣的:(极光setTags:xxx方法不执行回调/SEL)