JPush极光推送会有时绑定不了registrationID的解决方法

JPush极光推送会有时绑定不了registrationID的解决方法

在使用极光推送的过程中,服务器端有时候会遇到设备绑定不了registrationID的状况。

经过排查发现,向服务器接口传registrationID的时候,一定几率极光推送的服务还没初始化完成,导致registrationID没有值

然后发现极光的API里面有这个:

extern NSString *const kJPFNetworkIsConnectingNotification; // 正在连接中

extern NSString *const kJPFNetworkDidSetupNotification;     // 建立连接

extern NSString *const kJPFNetworkDidCloseNotification;     // 关闭连接

extern NSString *const kJPFNetworkDidRegisterNotification;  // 注册成功

extern NSString *const kJPFNetworkFailedRegisterNotification; //注册失败

extern NSString *const kJPFNetworkDidLoginNotification;     // 登录成功

extern NSString *const kJPFNetworkDidReceiveMessageNotification;         // 收到消息(非APNS)

extern NSString *const kJPFServiceErrorNotification;  // 错误提示


这个通知要自己注册的。。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

//防止registrationID还没生成,就调服务器接口的情况了

    [[NSNotificationCenter defaultCenteraddObserver:selfselector:@selector(networkDidLoginNotification:) name:kJPFNetworkDidLoginNotificationobject:nil];

}

//通知方法 防止registrationID还没生成,就调服务器接口的情况

- (void)networkDidLoginNotification:(NSNotification *)notification {

    

    //调用接口

    NSLog(@"\n\n极光推送注册成功\n\n");

    

    //通知后台registrationID·

    [self registJpushRequest];

    //注销通知

    [[NSNotificationCenter defaultCenterremoveObserver:selfname:kJPFNetworkDidLoginNotification object:nil];

}

这样就能防止registrationID还没生成,就调服务器接口的情况了

这个通知每次启动的时候都会走,所以最后还是要加个常量,来判断一下,只跟服务器进行一次绑定registrationID的通讯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值