新【应用配置】融云应用上线流程与注意事项
确保您的应用在开发环境都已经测试完成,可以正常使用。确认实现了在 Connect 方法中重新获取 Token 的逻辑。
Android 端仅以 IMLib SDK 为例, 其他 SDK 请参见开发者文档:
public connectIM(String token){
boolean isCachedLogin == getLoginStatusFromSP(context); //伪代码,从 sharedpreference 里读取该用户是否为免密登录
int timeLimit = 0;
if(! isCachedLogin) {
timeLimit = 5;
}
RongIMClient.connect("用户Token", timeLimit, new RongIMClient.ConnectCallback() {
@Override
public void onDatabaseOpened(RongIMClient.DatabaseOpenStatus code) {
if(RongIMClient.DatabaseOpenStatus.DATABASE_OPEN_SUCCESS.equals(code)) {
//本地数据库打开,跳转到会话列表页面
} else {
//数据库打开失败,可以弹出 toast 提示。
}
}
@Override
public void onSuccess(String s) {
//连接成功,如果 onDatabaseOpened() 时没有页面跳转,也可在此时进行跳转。
}
@Override
public void onError(RongIMClient.ConnectionErrorCode errorCode) {
if(errorCode.equals(RongIMClient.ConnectionErrorCode.RC_CONN_TOKEN_EXPIRE)) {
//从 APP 服务请求新 token,获取到新 token 后重新 connect()
} else if (errorCode.equals(RongIMClient.ConnectionErrorCode.RC_CONNECT_TIMEOUT)) {
//连接超时,弹出提示,可以引导用户等待网络正常的时候再次点击进行连接
} else {
//其它业务错误码,请根据相应的错误码作出对应处理。
}
}
})
}
iOS 端以 IMLib SDK 为例, 其他 SDK 请参见开发者文档:
[[RCIMClient sharedRCIMClient] connectWithToken:@"开发者的 server 通过请求 server api 获取到的 token 值"
timeLimit:5
dbOpened:^(RCDBErrorCode code) {
//消息数据库打开,可以进入到主页面
} success:^(NSString *userId) {
//连接成功
} error:^(RCConnectErrorCode status) {
if (status == RC_CONN_TOKEN_INCORRECT) {
//Token 错误,可检查客户端 SDK 初始化与 App 服务端获取 Token 时所使用的 App Key 是否一致
} else if(status == RC_CONNECT_TIMEOUT) {
//连接超时,弹出提示,可以引导用户等待网络正常的时候再次点击进行连接
} else {
//无法连接 IM 服务器,请根据相应的错误码作出对应处理
}
}]