NXMClient
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.m.
Importieren Sie am Anfang der Datei NexmoClient und User.
#import "ViewController.h"
#import "User.h"
#import <NexmoClient/NexmoClient.h>
Hinzufügen einer NXMClient Instanz und user Eigenschaft unterhalb der statusLabel.
@interface ViewController ()
...
@property UILabel *statusLabel;
@property NXMClient *client;
@property User *user;
@end
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.m Datei Folgendes hinzufügen.
@implementation ViewController
...
- (void)viewDidLoad {
...
}
- (void)setUserAsAlice {
self.user = User.Alice;
[self login];
}
- (void)setUserAsBob {
self.user = User.Bob;
[self login];
}
Verknüpfen Sie dann die beiden Funktionen mit ihren jeweiligen Schaltflächen am Ende der viewDidLoad Funktion.
- (void)viewDidLoad {
...
[self.loginAliceButton addTarget:self action:@selector(setUserAsAlice) forControlEvents:UIControlEventTouchUpInside];
[self.loginBobButton addTarget:self action:@selector(setUserAsBob) forControlEvents:UIControlEventTouchUpInside];
}
Hinzufügen der Log-in-Funktion
Am Ende des ViewController.mfügen Sie die login Funktion, die von der setUserAs Funktionen. Diese Funktion setzt den Delegierten des Kunden und meldet sich an.
@implementation ViewController
...
- (void)login {
[self.client setDelegate:self];
[self.client loginWithAuthToken:self.user.jwt];
}
Der Delegierte des Kunden
Damit der Delegierte funktioniert, müssen Sie folgende Voraussetzungen erfüllen ViewController entsprechen NXMClientDelegate. Zu diesem Zweck müssen Sie die NXMClientDelegate zur Schnittstellendefinition für ViewController.m.
@interface ViewController () <NXMClientDelegate>
...
@end
Fügen Sie dann am Ende der Datei Folgendes hinzu NXMClientDelegate Funktionen.
- (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;
});
}
Wenn ein Fehler auftritt, wird eine Fehlermeldung angezeigt und die statusLabel wird mit dem entsprechenden Verbindungsstatus aktualisiert.
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:

Erstellen einer iOS-Chat-App
Erstellen einer iOS-Anwendung, mit der sich Benutzer gegenseitig Nachrichten schicken können