iOS 极光设置 别名的坑

这个东西坑了我好几次了
在调用JPush设置别名和标签的方法之前,一定要在登录成功之后。
JPush提供了几种通知的状态

[objc] view plain copy

extern NSString *const kJPFNetworkIsConnectingNotification; // 正在连接中
extern NSString *const kJPFNetworkDidSetupNotification; // 建立连接
extern NSString *const kJPFNetworkDidCloseNotification; // 关闭连接
extern NSString *const kJPFNetworkDidRegisterNotification; // 注册成功
extern NSString *const kJPFNetworkDidLoginNotification; // 登录成功
extern NSString *const kJPFNetworkDidReceiveMessageNotification; // 收到消息(非APNS)
extern NSString *const kJPFServiceErrorNotification; // 错误提示

通过通知中心进行监听 就可以了

[objc] view plain copy

//JPush 监听登陆成功
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(networkDidLogin:)
name:kJPFNetworkDidLoginNotification
object:nil];

记得要删除

[objc] view plain copy

/**

  • 登录成功,设置别名,移除监听
  • @param notification <#notification description#>
    */
  • (void)networkDidLogin:(NSNotification *)notification {
    NSLog(@"已登录");
    [JPUSHService setAlias:@"123456" callbackSelector:nil object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self
    name:kJPFNetworkDidLoginNotification
    object:nil];
    }

添加: alias参数穿字符串变量不行,返回iResCode6003, 直接使用数字转字符串可以。

参考: http://blog.csdn.net/mx_xuanxiao/article/details/52036349

你可能感兴趣的:(iOS 极光设置 别名的坑)