我从事iOS开发有3年了,从第一年的时候开始用极光推送,每次使用极光推送的时候都觉得特别简单,因为按照极光推送的文档配置一遍,测试一下推送通知和自定义消息,然后设置别名(alias)以此标识不同的用户。
我每次都是在极光推送通知登录之后记一次别名(alias),如图所示:
然后我就和开发后端的同事调试一下,确认无误,就打包上线了。。。。。。
然后。。。。。。然后。。。。。。悲剧来了,新用户注册之后根本就接受不到注册奖励,这是为什么呢?我觉得我写的代码没有问题啊,严格按照极光推送的文档写代码的,经过后端长时间的排查发现根本就找不到用户!!!!!!!
这是什么原因呢?我仔细想了一下,全部写在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { }
里面,在新用户没有注册之前是没有任何标识(alias)的,注册之后也不会再来这里运行代码设置别名啊(alias),所以错误就出在这里,所以就要想办法解决啦。
因此,在我们注册之后,就要设置别名(alias),这个时候设置的别名才是有效的,
[JPUSHService registrationIDCompletionHandler: ^(int resCode, NSString *registrationID) { [JPUSHService setAlias:nil completion:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) { }seq:444444]; }];
注册之后就设置别名(alias),经过测试,完全正确,虽然是一个小问题,却是我对极光推送理解不到位造成的,因此我记录下来,提醒我,做什么事情都要仔细阅读,尤其是作为程序员,写代码一定要严谨!!!!!!!!!!!!!!!!!!!!