快速接入

# 快速接入 ## 初始化SDK 自定义Application,在项目的自定义Application中调用 initHtImSdk 初始化方法,初始化SDK。应在隐私协议通过后调用初始化方法。 ``` public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); HtImClientManager.getInstance().initHtImSdk(this,"dc44e4cb","76ec10d1dba73485fc655570e0d51e5f"); KLog.init(true); } @Override public void onTerminate() { super.onTerminate(); HtImClientManager.getInstance().cleanHtImSdk(); } static { ClassicsFooter.REFRESH_FOOTER_LOADING = "加载中..."; //设置全局的Header构建器 SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() { @Override public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) { return new ClassicsHeader(context);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header,默认是 贝塞尔雷达Header } }); //设置全局的Footer构建器 SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() { @Override public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) { //指定为经典Footer,默认是 BallPulseFooter return new ClassicsFooter(context).setDrawableSize(20); } }); } } ``` ## 登录 调用 doHtImLogin 方法登录,登录成功失败结果通过回调接口 ServerInitCallbackListener 回调结果,成功后跳转页面初始化OA及IM相关业务。 若使用推送服务,需要配置vendorDeviceToken字段,将推送token传入。 ``` HtImLoginConfig config = new HtImLoginConfig(); config.setServerUrl(url);//服务器地址 config.setLoginId(loginId);//登录账号Id config.setPassword(password);//登录密码 config.setLanguageType("CN");//登录语言 "CN"-中文 "EN"-英文 config.setVendorDeviceToken("OPPO_CN_81d9c923b0f606774be3eb07c8a30aec");//厂商推送token config.setCidDeviceToken("e7cee28a8ffb5272259bf04400ce05c8");//个推推送token 非必填 HtImClientManager.getInstance().doHtImLogin(config, new ServerInitCallbackListener() { @Override public void onError(int i, String s) { ToastUtils.showShort(s); } @Override public void onSuccess() { ToastUtils.showShort("初始化成功"); startActivity(new Intent(LoginActivity.this, MainActivity.class)); } }); ``` ## 初始化数据 登录成功后在MainActivity的onCreate中调用 initHtImData 初始化方法,并调用 setHtImRouteListener 注册全局路由监听。 ``` HtImClientManager.getInstance().initHtImData(this); HtImClientManager.getInstance().setHtImRouteListener(this); ``` 在页面onCreate中或需要的位置添加聊天相关的监听。 ``` //添加聊天相关监听 HtImClientManager.getInstance().addHtImChatListener(new HtImChatListener() { @Override public void onRecentMsgUnreadNum(int unreadNum) { TextView textView = findViewById(R.id.chatMsgUnreadNum); if (textView != null) { if (unreadNum > 0) { textView.setVisibility(View.VISIBLE); textView.setText("" + unreadNum); } else { textView.setVisibility(View.GONE); textView.setText("0"); } } } @Override public void onRecentToDoNum(int num) { TextView textView = findViewById(R.id.chatMsgToDoNum); if (textView != null) { if (num > 0) { textView.setVisibility(View.VISIBLE); textView.setText("" + num); } else { textView.setVisibility(View.GONE); textView.setText("0"); } } } }); ``` 在页面退出时或在不需要监听时,移除注册的监听。 ``` //移除单个聊天监听 HtImClientManager.getInstance().removeHtImChatListener(htImChatListener); //移除所有聊天监听 HtImClientManager.getInstance().removeAllHtImChatListener(); ``` ## 退出登录 登录状态下,调用 doHtImLogout 方法退出登录。 ``` HtImClientManager.getInstance().doHtImLogout(MainActivity.this); ```