我的项目中遇到的情况是,我需要用到registrationID的时候还没有请求回来,所以要监听极光注册的状态,在监听到登录成功后,再调用api去获取registrationID;
下面是极光sdk的注册状态,可以根据需要来选择;
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; // 错误提示
if
(
kJPFNetworkDidLoginNotification
) {
[
JPUSHService
registrationIDCompletionHandler
:^(
int
resCode,
NSString
*registrationID) {
if
(resCode ==
0
){
NSLog
(
@"registrationID获取成功:%@"
,registrationID);
DEF_PERSISTENT_SET_OBJECT
(registrationID,
@"jPushRegistrationID"
);
}
else
{
NSLog
(
@"registrationID获取失败,code:%d"
,resCode);
}
}];
}
如果没有成功,那么极光的sdk会自动请求极光后台,直到成功为止;
这样就可以成功及时拿回
registrationID