云信基础
一. 使用Uikit简单集成云信通讯
1.初始化
在 Application 中,在初始化云信 SDK 之后,初始化UIKit:
NimUIKit.init(context);
初始化示例:
public class NimApplication extends Application {
public void onCreate() {
// 初始化云信SDK
NIMClient.init(this, loginInfo(), options());
if (inMainProcess()) {
// 在主进程中初始化UI组件,判断所属进程方法请参见demo源码。
initUiKit();
}
}
private void initUiKit() {
// 初始化
NimUIKit.init(this);
NimUIKit.setLocationProvider(new NimDemoLocationProvider());
// 会话窗口的定制: 示例代码可详见demo源码中的SessionHelper类。
// 1.注册自定义消息附件解析器(可选)
// 2.注册各种扩展消息类型的显示ViewHolder(可选)
// 3.设置会话中点击事件响应处理(一般需要)
SessionHelper.init();
// 通讯录列表定制:示例代码可详见demo源码中的ContactHelper类。
// 1.定制通讯录列表中点击事响应处理(一般需要,UIKit 提供默认实现为点击进入聊天界面)
ContactHelper.init();
// 在线状态定制初始化。
NimUIKit.setOnlineStateContentProvider(new DemoOnlineStateContentProvider());
}
2.登陆
public static AbortableFuture login(LoginInfo loginInfo, final RequestCallback callback);
实例代码:
loginRequest = NimUIKit.login(new LoginInfo(account, token), new RequestCallback() {
@Override
public void onSuccess(LoginInfo param) {
LogUtil.i(TAG, “login success”);
onLoginDone();
DemoCache.setAccount(account);
saveLoginInfo(account, token);
// 初始化消息提醒配置
initNotificationConfig();
// 进入主界面
MainActivity.start(LoginActivity.this, null);
finish();
}
@Override
public void onFailed(int code) {
onLoginDone();
if (code == 302 || code == 404) {
Toast.makeText(LoginActivity.this, R.string.login_failed, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(LoginActivity.this, "登录失败: " + code, Toast.LENGTH_SHORT).show();
}
}
@Override
public void onException(Throwable exception) {
Toast.makeText(LoginActivity.this, R.string.login_exception, Toast.LENGTH_LONG).show();
onLoginDone();
}
});
3.单聊
NimUIKit.startP2PSession(context, account);
// 打开单聊界面,跳转到指定消息位置
//直接实现聊天界面
NimUIKit.startP2PSession(context, account, anchor);
4.群聊
// 打开群聊界面
NimUIKit.startTeamSession(context, teamId);
// 打开群里界面,跳转到指定消息位置
NimUIKit.startTeamSession(context, teamId, anchor);