NXMClient
Antes de que puedas iniciar un chat, el Client SDK necesita autenticarse en los servidores de Vonage. Las siguientes adiciones son necesarias para ViewController.m.
En la parte superior del archivo, importe NexmoClient y User.
#import "ViewController.h"
#import "User.h"
#import <NexmoClient/NexmoClient.h>
Añadir un NXMClient y user debajo de la propiedad statusLabel.
@interface ViewController ()
...
@property UILabel *statusLabel;
@property NXMClient *client;
@property User *user;
@end
Objetivos de los botones
Para que los botones de inicio de sesión funcionen, es necesario añadirles objetivos que ejecuten una función al pulsarlos. En los botones ViewController.m añada lo siguiente.
@implementation ViewController
...
- (void)viewDidLoad {
...
}
- (void)setUserAsAlice {
self.user = User.Alice;
[self login];
}
- (void)setUserAsBob {
self.user = User.Bob;
[self login];
}
A continuación, vincular las dos funciones a sus respectivos botones al final de la viewDidLoad función.
- (void)viewDidLoad {
...
[self.loginAliceButton addTarget:self action:@selector(setUserAsAlice) forControlEvents:UIControlEventTouchUpInside];
[self.loginBobButton addTarget:self action:@selector(setUserAsBob) forControlEvents:UIControlEventTouchUpInside];
}
Añadir la función de inicio de sesión
Al final de ViewController.mañada el login que necesita el setUserAs funciones. Esta función establece el delegado del cliente e inicia sesión.
@implementation ViewController
...
- (void)login {
[self.client setDelegate:self];
[self.client loginWithAuthToken:self.user.jwt];
}
El delegado cliente
Para que el delegado funcione, debe tener ViewController ajustarse a NXMClientDelegate. Para ello tendrá que añadir el NXMClientDelegate a la definición de la interfaz para ViewController.m.
@interface ViewController () <NXMClientDelegate>
...
@end
A continuación, al final del archivo, añada lo siguiente NXMClientDelegate funciones.
- (void)client:(NXMClient *)client didChangeConnectionStatus:(NXMConnectionStatus)status reason:(NXMConnectionStatusReason)reason {
switch (status) {
case NXMConnectionStatusConnected: {
[self setStatusLabelText:@"Connected"];
break;
}
case NXMConnectionStatusConnecting:
[self setStatusLabelText:@"Connecting"];
break;
case NXMConnectionStatusDisconnected:
[self setStatusLabelText:@"Disconnected"];
break;
}
}
- (void)client:(NXMClient *)client didReceiveError:(NSError *)error {
[self setStatusLabelText:error.localizedDescription];
}
- (void)setStatusLabelText:(NSString *)newStatus {
dispatch_async(dispatch_get_main_queue(), ^{
self.statusLabel.text = newStatus;
});
}
Si se encuentra un error, se mostrará statusLabel se actualiza con el estado de la conexión correspondiente.
Construir y ejecutar
Pulse Cmd + R para construir y ejecutar de nuevo. Si pulsa sobre uno de los botones de inicio de sesión, el cliente iniciará sesión con el usuario correspondiente:

Crear una aplicación de chat para iOS
Crear una aplicación para iOS que permita a los usuarios enviarse mensajes entre sí.