集成单群聊 UIKit

大约 2 分钟

集成单群聊 UIKit

使用单群聊 UIKit 之前,你需要将其集成到你的应用中。

前提条件

  • Android Studio 4.0 及以上
  • Gradle 4.10.x 及以上
  • targetVersion 26 及以上
  • Android SDK API 21 及以上
  • JDK 11 及以上

集成单群聊 UIKit

Module 远程依赖

在 app 项目 build.gradle.kts 中添加以下依赖:

implementation("io.hyphenate:ease-chat-kit:4.7.0")

本地依赖

从 GitHub 获取单群聊 UIKitopen in new window 源码,按照下面的方式集成:

  1. 在根目录 settings.gradle.kts 文件(/Gradle Scripts/settings.gradle.kts)中添加如下代码:
include(":ease-im-kit")
project(":ease-im-kit").projectDir = File("../chatuikit-android/ease-im-kit")
  1. 在 app 的 build.gradle.kts 文件(/Gradle Scripts/build.gradle)中添加如下代码:
//chatuikit-android
implementation(project(mapOf("path" to ":ease-im-kit")))

防止代码混淆

app/proguard-rules.pro 文件中添加如下行,防止代码混淆:

-keep class com.hyphenate.** {*;}
-dontwarn  com.hyphenate.**

快速搭建页面

创建聊天页面

  • 使用 UIKitChatActivity

单群聊 UIKit 提供 UIKitChatActivity 页面,调用 UIKitChatActivity#actionStart 方法即可,示例代码如下:

// conversationId: 单聊会话为对端用户 ID,群聊会话为群组 ID。
// chatType:单聊为 ChatUIKitType#SINGLE_CHAT,群聊为 ChatUIKitType#GROUP_CHAT。
UIKitChatActivity.actionStart(mContext, conversationId, chatType)

UIKitChatActivity 页面主要进行权限的请求,比如相机权限,语音权限等。

  • 使用 UIKitChatFragment

开发者也可以使用单群聊 UIKit 提供的 UIKitChatFragment 创建聊天页面,示例代码如下:

class ChatActivity: AppCompactActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_chat)
        // conversationID: 1v1 is peer's userID, group chat is groupID
        // chatType can be ChatUIKitType#SINGLE_CHAT, ChatUIKitType#GROUP_CHAT
        UIKitChatFragment.Builder(conversationId, chatType)
                        .build()?.let { fragment ->
                            supportFragmentManager.beginTransaction()
                                .replace(R.id.fl_fragment, fragment).commit()
                        }
    }
}

创建会话列表页面

单群聊 UIKit 提供 ChatUIKitConversationListFragment,添加到 Activity 中即可使用。

示例如下:

class ConversationListActivity: AppCompactActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_conversation_list)

        ChatUIKitConversationListFragment.Builder()
                        .build()?.let { fragment ->
                            supportFragmentManager.beginTransaction()
                                .replace(R.id.fl_fragment, fragment).commit()
                        }
    }
}

创建联系人列表页面

单群聊 UIKit 提供 ChatUIKitContactsListFragment,添加到 Activity 中即可使用。

示例如下:

class ContactListActivity: AppCompactActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_contact_list)

        ChatUIKitContactsListFragment.Builder()
                        .build()?.let { fragment ->
                            supportFragmentManager.beginTransaction()
                                .replace(R.id.fl_fragment, fragment).commit()
                        }
    }
}