TUIKit_Android/├── atomic_x/ # 基础 UI 组件库(Chat 依赖)├── call/│ └── tuicallkit-kt/ # 音视频通话组件(Chat 依赖)└── chat/├── demo/ # Chat View 版示例工程└── uikit/ # Chat View 版 UI 组件库
YourApplication/├── app/ # 您的应用模块├── atomic_x/ # 基础 UI 组件库(必要)├── call/ # 音视频通话组件(可选)│ └── tuicallkit-kt/├── chat/ # Chat 源码│ ├── demo/ # 示例工程(可参考,非必需)│ └── uikit/ # Chat UIKit 组件库(必要)├── settings.gradle.kts└── build.gradle.kts
settings.gradle.kts 中引入对应模块(请按源码实际存放位置调整相对路径):// settings.gradle.kts// 引入 Chat UIKit 组件库(必要)include(":uikit")project(":uikit").projectDir = file("${settingsDir.path}/chat/uikit")// 引入 AtomicX 基础 UI 组件库(必要)include(":atomic_x")project(":atomic_x").projectDir = file("${settingsDir.path}/atomic_x")// 引入音视频通话组件(可选,集成音视频通话时需要)include(":tuicallkit-kt")project(":tuicallkit-kt").projectDir = file("${settingsDir.path}/call/tuicallkit-kt")
// settings.gradle// 引入 Chat UIKit 组件库(必要)include ':uikit'project(':uikit').projectDir = new File(settingsDir, 'chat/uikit')// 引入 AtomicX 基础 UI 组件库(必要)include ':atomic_x'project(':atomic_x').projectDir = new File(settingsDir, 'atomic_x')// 引入音视频通话组件(可选,集成音视频通话时需要)include ':tuicallkit-kt'project(':tuicallkit-kt').projectDir = new File(settingsDir, 'call/tuicallkit-kt')
build.gradle.kts 中添加依赖:// app/build.gradle.ktsdependencies {// TUIKit 组件库(必要)implementation(project(":uikit"))implementation(project(":atomic_x"))// 音视频通话(可选)implementation(project(":tuicallkit-kt"))}
// app/build.gradledependencies {// TUIKit 组件库(必要)implementation project(':uikit')implementation project(':atomic_x')// 音视频通话(可选)implementation project(':tuicallkit-kt')}

LoginStore 的 login 接口,传入上文获取的 sdkAppID、userID、userSig 进行登录鉴权:import io.trtc.tuikit.atomicxcore.api.CompletionHandlerimport io.trtc.tuikit.atomicxcore.api.login.LoginStoreLoginStore.shared.login(context,sdkAppID, // Int,控制台获取userID, // StringuserSig, // String,控制台或服务端生成object : CompletionHandler {override fun onSuccess() {// 登录成功,可跳转会话列表或聊天页}override fun onFailure(code: Int, desc: String) {// 登录失败,可弹框报错}})
ConversationsPageView 并加入到您的布局即可。它会自动从本地读取最近会话,点击某个会话时通过 onConversationClick 回调返回该会话的 conversationID,您可据此跳转聊天界面。import android.os.Bundleimport androidx.appcompat.app.AppCompatActivityimport io.trtc.tuikit.chat.uikit.pages.ConversationsPageViewclass ConversationActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val conversationsPage = ConversationsPageView(this)conversationsPage.setHeaderTitle("消息")// 点击会话回调,conversationID 已带 c2c_ / group_ 前缀conversationsPage.onConversationClick = { conversationID ->// 跳转到您的聊天界面,并将 conversationID 传入(可参考步骤4 的 ChatActivity)}// 可选:搜索、发起单聊、创建群聊等入口回调conversationsPage.onSearchClick = { /* 跳转搜索页 */ }conversationsPage.onStartChatClick = { /* 发起单聊 */ }conversationsPage.onCreateGroupClick = { /* 创建群聊 */ }// 将会话列表设置为页面内容setContentView(conversationsPage)}}
ChatPageView 展示和收发消息,通过 setup 传入 conversationID 即可。conversationID 的格式为:单聊 c2c_<对方 UserID>,群聊 group_<群 GroupID>。import android.content.Contextimport android.content.Intentimport android.os.Bundleimport androidx.appcompat.app.AppCompatActivityimport io.trtc.tuikit.chat.uikit.pages.ChatPageViewclass ChatActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {// 必须设置 Material Components 主题,否则 ChatPageView 运行时会 CrashsetTheme(com.google.android.material.R.style.Theme_MaterialComponents_Light_NoActionBar)super.onCreate(savedInstanceState)// conversationID 格式:单聊 "c2c_<对方 UserID>",群聊 "group_<群 GroupID>"val conversationID = intent.getStringExtra("conversationID") ?: returnval chatPageView = ChatPageView(this)chatPageView.setup(conversationID = conversationID)setContentView(chatPageView)}companion object {fun start(context: Context, conversationID: String) {context.startActivity(Intent(context, ChatActivity::class.java).apply {putExtra("conversationID", conversationID)})}}}
setTheme(com.google.android.material.R.style.Theme_MaterialComponents_Light_NoActionBar)),否则 ChatPageView 内部使用的 Material 控件会因缺少对应主题属性,在运行时直接 Crash。ChatPageView 封装好的聊天页 ChatActivity(带标题栏、未读角标、群事件处理等),可直接复用或参考其实现进行自定义:ChatActivity.start(context, conversationID)。ContactsPageView 展示好友列表、群组列表等,通过 setup 设置点击回调。点击联系人或群组时跳转对应聊天界面。import android.os.Bundleimport androidx.appcompat.app.AppCompatActivityimport io.trtc.tuikit.chat.uikit.pages.ContactsPageViewclass ContactActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val contactsPage = ContactsPageView(this)contactsPage.setHeaderTitle("通讯录")contactsPage.setup(onContactClick = { contactInfo ->// 跳转到您的聊天界面,单聊会话 ID 为 "c2c_" + contactInfo.userID(可参考步骤4 的 ChatActivity)},onGroupClick = { contactInfo ->// 跳转到您的聊天界面,群聊会话 ID 为 "group_" + contactInfo.userID(可参考步骤4 的 ChatActivity)})setContentView(contactsPage)}}
ThemeStore 支持设置主题色与浅色 / 深色主题切换。import io.trtc.tuikit.atomicx.theme.Themeimport io.trtc.tuikit.atomicx.theme.ThemeStore// 设置主题色ThemeStore.shared(context).setPrimaryColor("#1C66E5")// 切换浅色 / 深色主题ThemeStore.shared(context).setTheme(Theme.lightTheme(context))// ThemeStore.shared(context).setTheme(Theme.darkTheme(context))

文档反馈