美文网首页
极光setTags:xxx方法不执行回调/SEL

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

作者: IMKel | 来源:发表于2017-04-27 11:52 被阅读135次
    • 在集成极光推送时,如果控制台打印类似下面这样的代码,说明你的极光集成成功了。
    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

          本文链接:https://www.haomeiwen.com/subject/emmgzttx.html