Kotlin
ChatClient
チャットを開始する前に、Client SDKはVonageサーバーを認証する必要があります。新しいKotlinファイルを作成することから始めます。 ChatViewModel.kt.
新しいクラスを作る 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
}
}
}
}
}
このクラスは ChatClient で、JWTを使ってセッションを作成する。置き換える ALICE_JWT そして BOB_JWT を、先ほど作成したJWTで置き換える。
ボタン操作
ログインボタンを機能させるには、タップされたときに関数を実行するアクションを追加する必要があります。ビューのコードを MainActivity.kt をインスタンス化する。 ChatViewModel オブジェクトを呼び出し login 関数である:
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")
}
}
}
Androidチャットアプリの作成
Android Client SDKとKotlinを使用して、ユーザー同士がメッセージをやり取りできるAndroidアプリケーションを作成します。
手順
1
このタスクの紹介2
Prerequisites3
Vonageアプリケーションの作成4
会話を作る5
ユーザーを作成する6
JWTの生成7
Androidプロジェクトを作成する8
ログイン・インターフェースの構築9
チャットクライアント10
チャットインターフェースの構築11
チャットイベント12
メッセージの送信13
次はどうする?