VGChatClient
Bevor Sie einen Chat starten können, muss sich das Client SDK bei den Vonage-Servern authentifizieren. Die folgenden Ergänzungen sind erforderlich, um ContentView.swift.
Importieren Sie am Anfang der Datei VonageClientSDKChat:
import SwiftUI
import VonageClientSDKChat
Erstellen Sie am Ende der Datei eine neue Klasse namens 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
}
}
}
Diese Klasse erzeugt eine Instanz von VGChatClient und erstellen Sie dann eine Sitzung mit einem JWT. Ersetzen Sie ALICE_JWT und BOB_JWT mit den JWTs, die Sie zuvor erstellt haben.
Tasten-Aktionen
Damit die Anmeldeschaltflächen funktionieren, müssen Sie ihnen Aktionen hinzufügen, die eine Funktion ausführen, wenn sie angetippt werden. Aktualisieren Sie den Code der Ansicht, um eine LoginViewModel Objekt und rufen dessen login Funktion:
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))
}
}
}
Wenn beim Erstellen einer Sitzung ein Fehler auftritt, wird eine Alert wird die Fehlermeldung angezeigt. Außerdem gibt es eine navigationDestination das den Chat-Bildschirm öffnet, wenn die Sitzung erfolgreich erstellt wurde. Das werden Sie im nächsten Schritt erstellen.
Erstellen einer iOS-Chat-App
Erstellen einer iOS-Anwendung, mit der sich Benutzer gegenseitig Nachrichten schicken können