VGVoiceClient
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 ViewController.swift.
NOTA: Observe que você já importou VGVoiceClient no início do arquivo.
Adicione um VGVoiceClient instância e um User propriedade, abaixo do connectionStatusLabel.
class ViewController: UIViewController {
...
let connectionStatusLabel = UILabel()
var client = VGVoiceClient()
var user: User? {
didSet {
login()
}
}
}
Metas do Button
Para que os botões de login funcionem, é preciso adicionar destinos a eles, que executarão uma função quando forem tocados. No ViewController.swift Adicione essas duas funções ao arquivo.
class ViewController: UIViewController {
...
override func viewDidLoad() {
...
}
...
@objc func setUserAsAlice() {
self.user = User.Alice
}
@objc func setUserAsBob() {
self.user = User.Bob
}
}
Em seguida, vincule as duas funções aos respectivos botões no final do viewDidLoad função.
override func viewDidLoad() {
...
loginAliceButton.addTarget(self, action: #selector(setUserAsAlice), for: .touchUpInside)
loginBobButton.addTarget(self, action: #selector(setUserAsBob), for: .touchUpInside)
}
Adicionar a função de login
No final de ViewController.swift, adicione o login função necessária para a propriedade do usuário. Essa função cria uma sessão quando a propriedade do usuário é definida com um novo valor.
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
}
}
}
}
}
Se ocorrer um erro, ele será exibido, e o connectionStatusLabel é atualizado com o status da conexão correspondente.
NOTA: O enableWebsocketInvites opção na configuração do cliente e o isUsingCallKit Essa configuração não deve ser usada em ambiente de produção. Ative as notificações push para garantir que você receba chamadas mesmo quando o aplicativo estiver em segundo plano, usando CallKit. Consulte o notificações push guia para obter mais informações.
Compilar e executar
Imprensa Cmd + R para compilar e executar novamente. Se você tocar em um dos botões de login, o cliente fará o login com o respectivo usuário:

Fazendo uma chamada de voz de aplicativo para aplicativo
Você faz uma chamada de voz de um aplicativo iOS para outro aplicativo iOS