Kotlin
ChatClient
Antes de que puedas iniciar un chat, el Client SDK necesita autenticarse en los servidores de Vonage. Comienza creando un nuevo archivo Kotlin ChatViewModel.kt.
Crear una nueva clase ChatViewModel:
class ChatViewModel(application: Application) : AndroidViewModel(application = application) {
private val aliceJwt = "ALICE_JWT"
private val bobJwt = "BOB_JWT"
var isLoggedIn by mutableStateOf(false)
var isError by mutableStateOf(false)
var error = ""
var events : SnapshotStateList<PersistentConversationEvent> = mutableStateListOf()
private var client = ChatClient(getApplication<Application>().applicationContext)
fun login(username: String) {
val jwt = if(username == "Alice") aliceJwt else bobJwt
client.createSession(jwt) { err, sessionId ->
when {
err != null -> {
isError = true
error = err.localizedMessage?.toString() ?: ""
}
else -> {
isLoggedIn = true
}
}
}
}
}
Esta clase creará una instancia de ChatClient y luego crear una sesión utilizando un JWT. Sustituir ALICE_JWT y BOB_JWT con los JWT que creó anteriormente.
Botón Acciones
Para que los botones de inicio de sesión funcionen, tienes que añadirles acciones que ejecuten una función cuando se pulsen. Actualice el código de la vista en MainActivity.kt para instanciar un ChatViewModel y llamar a su login función:
class MainActivity : ComponentActivity() {
private val chatState by viewModels<ChatViewModel>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
CompositionLocalProvider(LocalChatState provides chatState) {
LoginScreen()
}
}
}
}
val LocalChatState = compositionLocalOf<ChatViewModel> { error("Login State Context Not Found!") }
@Composable
fun LoginScreen() {
val vm = LocalChatState.current
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Button(onClick = { vm.login("Alice") }) {
Text("Login as Alice")
}
Button(onClick = { vm.login("Bob") }) {
Text("Login as Bob")
}
}
}
Crear una aplicación de chat para Android
Crea una aplicación Android que permita a los usuarios enviarse mensajes entre sí utilizando el Client SDK de Android y Kotlin.
Pasos
1
Introducción a esta tarea2
Prerequisites3
Crear una aplicación de Vonage4
Crear una conversación5
Crear los usuarios6
Generar JWT7
Crear un proyecto Android8
Creación de la interfaz de inicio de sesión9
ChatClient10
Construir la interfaz de chat11
Eventos de chat12
Enviar un mensaje13
¿Y ahora qué?