Android IMKit 快速开始
本页在 5 个步骤内完成 Android 端 IMKit 接入:先接入 IMLib,再初始化门面,最后挂载会话列表与会话页。IMKit 只消费 IMLib 的公开数据,不重复实现通信能力。
- 接入 IMLib
按 IMLib 快速开始 完成初始化与连接;IMKit 不重复建立连接。
- 导入 IMKit
按「导入 SDK」安装依赖;只依赖 io.nipaas.imlib 公开 API;禁止依赖 OkHttp / 协议层 / SQLite 实现 / 服务端类型
- 初始化门面
初始化 IMLib 客户端并连接,然后创建 IMKit 门面(或调用静态 init);门面持有主题、语言与组件实例。
- 挂载会话列表
传入 conversations 与交互回调;会话数据来自 IMLib 的 getConversationList 与 CONVERSATION 事件。
- 挂载会话页与输入区
传入 messages / currentUserId / hasMore;发送与已读回调转调 IMLib 对应接口。
1. 接入 IMLib
IMKit 的所有数据都来自 IMLib 公开接口:连接、会话列表、历史消息、发送、已读回执与未读清零。先完成 IMLib 接入再使用 IMKit。
2. 导入 IMKit
Gradle(Kotlin DSL)
// app/build.gradle.kts
dependencies {
implementation("io.nipaas:imkit:1.0.0")
}3. 初始化门面
Kotlin
IMKit.init(
context = applicationContext,
options = IMKitOptions.Builder()
.credentials("YOUR_APP_KEY", "https://im.example.com")
.build(),
)
IMKit.client()?.connect(TOKEN, connectCallback)门面:IMKit;门面 IMKit.init / routeToConversationList / routeToConversation / registerProvider / config。
4. 挂载会话列表
Kotlin
val fragment = ConversationListFragment.newInstance()
fragment.setBehaviorListener(object : ConversationListBehaviorListener {
override fun onConversationClick(context: Context, view: View, conversation: Conversation): Boolean {
IMKit.routeToConversation(
context,
ConversationIdentifier(conversation.conversationType, conversation.targetId),
)
return true
}
})
supportFragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit()
// 或直接走内置路由
IMKit.routeToConversationList(context)5. 挂载会话页与输入区
Kotlin
// 方式一:内置 Activity 路由
IMKit.routeToConversation(
context,
ConversationIdentifier(ConversationType.PRIVATE, "user2"),
)
// 方式二:Fragment 挂载
supportFragmentManager.beginTransaction()
.replace(R.id.container, ChatFragment.newInstance(ConversationType.PRIVATE, "user2"))
.commit()