JPush设置别名不走成功回调的解决办法
在参考了极光推送的文档之后,对个推(单个推送)有设置别名的方法,方法如下
[JPUSHService setTags:tags alias:alias fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) { NSLog(@"%d----%@---",iResCode,iAlias); }];
可是当我们按照极光的DEMO正确配置之后确发现怎么也不走回调方法,此时控制台打印的是
2016-05-18 17:36:31.045 | JPUSH | E - [JPUSHService] app not registed, give up set tag:(null) alias:86
通过打印信息我们可以看到此时JpushService由于网络的原因可能没有很快的注册成功(在我们公司是这样的,网速非常慢),这里我的解决办法是在主线程延迟调用设置别名的方法,调用如下
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [JPUSHService setTags:tags alias:alias fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) { NSLog(@"%d----%@---",iResCode,iAlias); }]; });
这里我设置的延时为1秒,通过这样操作之后,我们就能很好的获取回调,设置别名了