VGVoiceClient
Bevor Sie einen Chat starten können, muss sich das Client SDK bei den Vonage-Servern authentifizieren. Die folgenden Ergänzungen sind erforderlich, um ViewController.swift.
HINWEIS: Beachten Sie, dass Sie bereits importiert haben VGVoiceClient am Anfang der Datei.
Hinzufügen einer VGVoiceClient Instanz und eine User Eigenschaft, unterhalb der connectionStatusLabel.
class ViewController: UIViewController {
...
let connectionStatusLabel = UILabel()
var client = VGVoiceClient()
var user: User? {
didSet {
login()
}
}
}
Schaltfläche Ziele
Damit die Anmeldeschaltflächen funktionieren, müssen Sie ihnen Ziele hinzufügen, die eine Funktion ausführen, wenn sie angetippt werden. In der ViewController.swift Datei diese beiden Funktionen hinzufügen.
class ViewController: UIViewController {
...
override func viewDidLoad() {
...
}
...
@objc func setUserAsAlice() {
self.user = User.Alice
}
@objc func setUserAsBob() {
self.user = User.Bob
}
}
Verknüpfen Sie dann die beiden Funktionen mit ihren jeweiligen Schaltflächen am Ende der viewDidLoad Funktion.
override func viewDidLoad() {
...
loginAliceButton.addTarget(self, action: #selector(setUserAsAlice), for: .touchUpInside)
loginBobButton.addTarget(self, action: #selector(setUserAsBob), for: .touchUpInside)
}
Hinzufügen der Log-in-Funktion
Am Ende des ViewController.swiftfügen Sie die login Funktion, die für die Benutzereigenschaft benötigt wird. Diese Funktion erstellt eine Sitzung, wenn die Benutzereigenschaft auf einen neuen Wert gesetzt wird.
class ViewController: UIViewController {
...
override func viewDidLoad() {
...
}
func login() {
guard let user = self.user else { return }
VGVoiceClient.isUsingCallKit = false
let config = VGClientConfig(region: .US)
config.enableWebsocketInvites = true
client.setConfig(config)
client.createSession(user.jwt) { error, sessionId in
DispatchQueue.main.async { [weak self] in
guard let self else { return }
if error == nil {
self.connectionStatusLabel.text = "Connected"
} else {
self.connectionStatusLabel.text = error?.localizedDescription
}
}
}
}
}
Wenn ein Fehler auftritt, wird eine Fehlermeldung angezeigt, und die connectionStatusLabel wird mit dem entsprechenden Verbindungsstatus aktualisiert.
HINWEIS: Die enableWebsocketInvites Flagge in der Client-Konfiguration und die isUsingCallKit Einstellung sollte nicht in der Produktion verwendet werden. Aktivieren Sie Push-Benachrichtigungen, um sicherzustellen, dass Sie eingehende Anrufe erhalten, auch wenn Ihre Anwendung im Hintergrund läuft. CallKit. Siehe die Push-Benachrichtigungen Leitfaden für weitere Informationen.
Bauen und Ausführen
Presse Cmd + R zu erstellen und erneut auszuführen. Wenn Sie auf eine der Anmeldeschaltflächen tippen, wird der Client mit dem entsprechenden Benutzer angemeldet:

Sprachanruf von Anwendung zu Anwendung
Sie tätigen einen Sprachanruf von einer iOS-App zu einer anderen iOS-App