Skip to main content

Быстрый старт

Требования

  • Kotlin
  • Jetpack Compose

Подключение

  1. Скопировать модуль (папка android_chat_sdk/) и разместить в корне проекта

  2. Подключить модуль в settings.gradle.kts

include(":android_chat_sdk")
  1. Добавить зависимости в приложение в 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"
... />