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的通讯。
这个通知要自己注册的。。- (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的通讯。
相关文章推荐
- 在用java进行极光推送的时候,需要的一个工具类: 使用的时候,直接调用 sendToRegistrationId 方法
- iOS开发极光推送显示 开发证书没有通过验证 是否重新上传证书?解决方法
- JPush推送 之 RegistrationID 精确对点推送
- 极光推送 cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY 错误解决方法
- ios -- 极光推送《2》--极光推送消息推送成功,但是手机收不到的解决方法
- ios 极光推送 registrationID不能及时回调问题
- ionic 之cordova 极光推送jpush和百度定位插件结合使用之定位失效问题解决办法
- 解决Jpush无法获得registrationid原因,出现缺少write_setting权限问题
- iOS 极光推送消息推送成功,但是手机收不到的解决方法。
- 解决Android Studio配置JPush极光推送错误方案
- 解决极光推送网页端显示推送成功,移动设备收不到推送消息的方法
- 解决在极光推送的时候会出现一个 JPush提示:缺少统计代码
- 极光推送getRegistrationID为空,UnsatisfiedLinkError异常
- 极光推送获取RegistrationID
- JPush推送 之 RegistrationID 精确对点推送
- [原]Android Studio使用极光推送出现at cn.jpush.android.service.ServiceInterface.a(Unknown Source) 已解决
- 极光推送Couldn't load jpush180 from loader dalvik.system.PathClassLoader解决方法
- 极光推送demo测试流程,测试过程中可能遇到的问题和解决方法
- 解决极光推送Jpush混淆报错问题
- 极光推送能接收到自定义消息,但注册REGISTRATION_ID是null