您的位置:首页 > 其它

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

2017-07-13 17:56 260 查看
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 defaultCenter] addObserver:selfselector:@selector(networkDidLoginNotification:) name:kJPFNetworkDidLoginNotificationobject:nil];}//通知方法 防止registrationID还没生成,就调服务器接口的情况- (void)networkDidLoginNotification:(NSNotification *)notification {        //调用接口    NSLog(@"\n\n极光推送注册成功\n\n");        //通知后台registrationID·    [self registJpushRequest];    //注销通知    [[NSNotificationCenter defaultCenter] removeObserver:selfname:kJPFNetworkDidLoginNotification object:nil];}这样就能防止registrationID还没生成,就调服务器接口的情况了这个通知每次启动的时候都会走,所以最后还是要加个常量,来判断一下,只跟服务器进行一次绑定registrationID的通讯。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐