VGChatClient
Antes de iniciar um bate-papo, o Client SDK precisa se autenticar nos servidores da Vonage. São necessárias as seguintes adições para ContentView.swift.
No início do arquivo, importe VonageClientSDKChat:
import SwiftUI
import VonageClientSDKChat
Crie uma nova classe no final do arquivo chamada LoginViewModel:
@MainActor
final class LoginViewModel: ObservableObject {
@Published var error = ""
@Published var isError = false
@Published var isLoggedIn = false
private let aliceJwt = "ALICE_JWT"
private let bobJwt = "BOB_JWT"
let client = VGChatClient()
func login(_ username: String) async {
do {
let jwt = username == "Alice" ? aliceJwt : bobJwt
try await client.createSession(jwt)
isLoggedIn = true
} catch {
self.error = error.localizedDescription
self.isError = true
}
}
}
Esta classe criará uma instância de VGChatClient em seguida, crie uma sessão usando um JWT. Substitua ALICE_JWT e BOB_JWT com os JWTs que você criou anteriormente.
Ações dos botões
Para que os botões de login funcionem, é preciso adicionar ações a eles que executem uma função quando forem tocados. Atualize o código da visualização para instanciar um LoginViewModel objeto e chamar seu login função:
struct ContentView: View {
@StateObject private var loginModel = LoginViewModel()
var body: some View {
NavigationStack {
VStack {
Button("Login as Alice") {
Task {
await loginModel.login("Alice")
}
}.buttonStyle(.bordered)
Button("Login as Bob") {
Task {
await loginModel.login("Bob")
}
}.buttonStyle(.bordered)
}
.padding()
.navigationDestination(isPresented: $loginModel.isLoggedIn) {
let chatViewModel = ChatViewModel(client: loginModel.client)
ChatView(chatViewModel: chatViewModel)
}
}.alert(isPresented: $loginModel.isError) {
Alert(title: Text(loginModel.error))
}
}
}
Se ocorrer um erro ao criar uma sessão, um Alert será exibida uma mensagem de erro. Há também um navigationDestination destino que abrirá a tela de bate-papo caso a sessão seja criada com sucesso. Você criará isso na próxima etapa.
Criação de um aplicativo de bate-papo para iOS
Crie uma aplicação para iOS que permita que os usuários troquem mensagens entre si