发送第一条消息
本文会引导您集成
TUIKit 并成功发送第一条消息。开发环境要求
Android Studio 2022.3.1 及之后的版本,JDK 17。
Android 6.0 及以上真机或模拟器。
工程需支持 Kotlin(TUIKit 使用 Kotlin 开发)。
minSdk >= 23 。
前提条件
开通服务
1. 登录 即时通信 Chat 控制台。如果您已有应用,请记录其
SDKAppID 及 SDKSecretKey 并直接跳转到下一节。2. 在概览面板单击创建应用,开始创建新应用。


3. 在创建弹窗中输入应用名称并选择 Chat,选择合适的部署区域,单击创建。


4. 创建完成后,可在 Chat 概览 查看新建应用的
SDKAppID、SDKSecretKey,后续运行 Demo 时需要用到这两个信息。

禁止:
请妥善保管 SDKSecretKey,谨防泄露!
创建账号
创建账号的方式主要有 2 种,你可以选择下列任意一种合适的方式。
步骤如下:
1. 进入 Chat > 账号管理 页面。
2. 点击新建账号,弹出创建账号信息填写框。

3. 如果只是普通成员,选择普通账号即可。我们建议设置昵称。界面上可以通过昵称展示不同用户。

注意:
发消息至少是两个用户之间进行,因此您在此环节至少要创建 2 个账号。请记录下这 2 个账号的 userID,后续步骤会使用到。
生成 UserSig
2. 在签名(UserSig)生成工具区域,选择应用,输入 UserID。单击"生成"即可生成签名,签名有效期默认为180天。单击"复制"即可粘贴保存签名。


说明:
集成 TUIKit
注意:
1. 如果你新建了一个空 Android 项目集成 TUIKit,可逐步参考以下步骤实现发送第一条消息。
2. 如果你在已有项目里集成 TUIKit,请保持你的 UI 原来的代码不变,仅参考下文的登录及消息界面的组装逻辑。
登录 TUIKit
使用 TUIKit 组件里的功能需要调用
LoginStore 的 login API 登录用户账号,分两种情况:如果你没有事先在控制台创建用户账号,请分别先后调用 LoginStore 登录账号 user1 和 user2。最后确保 user1 在线。
如果你事先在控制台创建了 user1 和 user2,仅登录 user1。
说明:
1. 登录 user1 后给 user2 发消息,user2 可以不登录,Chat 默认允许用户和好友、陌生人之间发送单聊消息。
2. 如果你希望 user1 和 user2 能聊天互动,需要用另外一台设备登录 user2 并进入与 user1 的聊天界面。
login 接口调用示例如下:
// API location: io.trtc.tuikit.atomicxcore.api.login.LoginStoreLoginStore.shared.login(activity, // Activity contextsdkAppID, // Int, SDK application IDuserID, // String, User IDuserSig, // String, User signatureobject : CompletionHandler {override fun onSuccess() {// Login success}override fun onFailure(code: Int, desc: String) {// Login failed}})
加载聊天界面
以一个包含完整登录流程和聊天界面的 Activity 为例,App 启动时加载该 Activity。
注意,如果你直接使用我们的示例代码,需要预填充这几个参数:
sdkAppID,上文获取的 sdkAppID。senderUserID,发送消息者的 userID(也就是上文的 user1)。senderUserSig,上文获取到的,发送消息者的 userSig。receiverUserID,接受消息者的 userID。示例代码如下:
import android.os.Bundleimport android.view.ViewGroupimport android.widget.FrameLayoutimport androidx.appcompat.app.AppCompatActivityimport androidx.core.view.ViewCompatimport androidx.core.view.WindowCompatimport androidx.core.view.WindowInsetsCompatimport androidx.core.view.updatePaddingimport io.trtc.tuikit.atomicxcore.api.CompletionHandlerimport io.trtc.tuikit.atomicxcore.api.login.LoginStoreimport io.trtc.tuikit.chat.uikit.pages.ChatPageViewclass ChatPageDemoActivity : AppCompatActivity() {private val sdkAppID: Int = 0 // TODOprivate val senderUserID = "" // TODOprivate val senderUserSig = "" // TODOprivate val receiverUserID = "" // TODOprivate val conversationID: String get() = "c2c_${receiverUserID}"private var chatPageView: ChatPageView? = nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)WindowCompat.setDecorFitsSystemWindows(window, false)LoginStore.shared.login(this, sdkAppID, senderUserID, senderUserSig, object : CompletionHandler {override fun onSuccess() = showChatPage()override fun onFailure(code: Int, desc: String) {}})}private fun showChatPage() {val container = FrameLayout(this).apply {layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)}ViewCompat.setOnApplyWindowInsetsListener(container) { view, insets ->val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars())view.updatePadding(top = bars.top, bottom = bars.bottom)insets}setContentView(container)val page = ChatPageView(this)container.addView(page)page.setup(conversationID = conversationID,onUserClick = { /* Handle user avatar click */ })chatPageView = page}override fun onDestroy() {chatPageView?.release()super.onDestroy()}}
发送第一条消息
操作完上述步骤,启动 App 后会自动登录并加载聊天界面。手动单击输入框,发送您的第一条消息:

联系我们
