Быстрый старт
Требования
- Kotlin
- Jetpack Compose
Подключение
-
Скопировать модуль (папка
android_chat_sdk/) и разместить в корне проекта -
Подключить модуль в
settings.gradle.kts
include(":android_chat_sdk")
- Добавить зависимости в приложение в
build.gradle.kts
dependencies {
...
implementation(project(":android_chat_sdk"))
// Jetpack Compose
implementation(platform("androidx.compose:compose-bom:2025.09.00"))
implementation("androidx.compose.ui:ui")
}
Инициализация
Инициализировать SDK нужно в классе приложения
Метод init() требуется вызывать только 1 раз
class YourApp: Application() {
override fun onCreate() {
super.onCreate()
ChatHDE.init(
context = applicationContext,
serverOptions = ServerOptions.fromDomain("<домен_системы>"),
chatOptions = ChatOptions(
welcomeMessage = "Здравствуйте, чем могу помочь?",
botName = "Bot"
)
)
}
}
Добавить в манифест
<application
...
android:name=".YourApp">
Для корректного сжатия экрана при появлении клавиатуры нужно добавить настройку в манифест
<activity
...
android:windowSoftInputMode="adjustResize">
Для Jetpack Compose
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
DisposableEffect(Unit) {
ChatHDE.connect()
onDispose {
ChatHDE.disconnect()
}
}
val activity = LocalActivity.current
ChatView(onClose = {activity?.finish()})
}
}
}
Для Activity Views
Для корректной работы клавиатуры для Android Views также нужно изменить активити
class YourActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_your)
// Для корректного сжатия экрана при появлении клавиатуры
val root = findViewById<View>(R.id.main)
ViewCompat.setOnApplyWindowInsetsListener(root) { v, insets ->
val sys = insets.getInsets(WindowInsetsCompat.Type.systemBars())
val ime = insets.getInsets(WindowInsetsCompat.Type.ime())
v.setPadding(sys.left, sys.top, sys.right, max(sys.bottom, ime.bottom))
insets
}
...
Создать фрагмент с чатом
class CustomChatFragment: Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
return ComposeView(requireContext()).apply {
setContent {
ChatView(
onClose = { parentFragmentManager.popBackStack() }
)
}
}
}
override fun onStart() {
super.onStart()
ChatHDE.connect()
}
override fun onStop() {
super.onStop()
ChatHDE.disconnect()
}
}
В разметку нужно добавить FragmentContainerView
<androidx.fragment.app.FragmentContainerView
android:id="@+id/container"
android:name="com.example.yourapp.CustomChatFragment"
... />