Implementieren Sie Virtual und Service Desk-Mitarbeiter den Chat
Mit Mobile SDK können Sie virtuelle und Chat-Services Service Desk-Mitarbeiter ganz einfach in Ihrer iOS-Anwendung implementieren.
Sie verwenden die NowChatService- API zum Erstellen der Chat-Anwenderoberfläche. Sobald die UI erstellt wurde, müssen Sie die Chatsitzung starten und dann den Chatservice starten. Ähnlich wie andere Funktionsservices Mobile SDK bietet die NowChatService API zwei Implementierungen für einige ihrer Methoden, einschließlich der startChat()- Methode. Eine Implementierung gibt einen Herausgeber vom Typ „ Combine “ zurück, die andere ruft einen Abschluss-Handler mit den zurückgegebenen Ergebnissen auf.
Im Folgenden finden Sie einen Ausschnitt aus der Beispielanwendung, der zeigt, wie eine Chat-UI und -Sitzung initialisiert und gestartet wird.
// Create the chat UI
func makeChatScreen() -> UIViewController? {
guard let chatService = chatService else { return nil }
let result = chatService.makeChatUI(theme: CarrascoChatTheme(baseTheme: CarrascoTheme()))
switch result {
case .success(let chatViewController):
return chatViewController
case .failure(let error):
debugPrint("Chat screen creation failed with error: \(error)")
return nil
}
}
// Start the chat session
func startChat() {
guard let chatService = chatService else {
debugPrint("Chat service is invalid")
viewState = makeViewState()
return
}
chatService.startChat { [weak self] result in
if case .failure(let error) = result {
debugPrint("Chat session initialization failed with error: \(error)")
self?.resetChat()
}
}
}
// Initialize the chat service
private func initializeChatService() {
NowChat.makeChatService(instanceUrl: instanceUrl, delegate: self) { [weak self] result in
guard let self = self else { return }
switch result {
case .success(let service):
self.chatService = service
case .failure(let error):
debugPrint("Creating the chat service failed with error: \(error)")
}
self.viewState = self.makeViewState()
}
}Bevor Sie die -Chatfunktion in Ihrer -Anwendung nutzen können, müssen Sie Virtual Agent in Ihrer ServiceNow -Instanz konfigurieren. Details finden Sie unter Virtual Agent.
Übergabe von Kontextvariablen an Service Desk-Mitarbeiter - und Virtual Agent -Chat
Sie können Chat-Kontextvariablen beim Starten einer Chatsitzung übergeben, indem Sie den Parameter contextData in den Funktionen NowChatService – startChat(contextData: [Zeichenfolge: Beliebig]?) oder NowChatService - startChat(contextData: [Zeichenfolge: Beliebig]? = nil, _ Abschluss: @escaping (Ergebnis<Void, NowChatServiceError> )) übergeben. Weitere Informationen zu Chat-Kontextvariablen finden Sie unter Live agent chat context variables.
func startChat() {
guard let chatService = chatService else {
debugPrint("Chat service is invalid")
viewState = makeViewState()
return
}
let contextData = ["sys_id": "123456789", "table_name": "wm_task", "active": true] as [String: Any]
chatService.startChat(contextData: contextData) { [weak self] result in
if case .failure(let error) = result {
debugPrint("Chat session initialization failed with error: \(error)")
self?.resetChat()
}
}
}Designieren Sie die Chat-Anwenderoberfläche
Sie können die Farben der Chat-UI Service Desk-Mitarbeiter und Virtual Agent anpassen, indem Sie ein Designobjekt im Aufruf von makeChatUI() übergeben. Eine Liste aller Elemente, die Sie anpassen können, finden Sie unter NowChatColoring-Protokoll – iOS. Standardmäßig verwendet die Chat-UI das Design NowUIColor für alle NowSDK-UI-Elemente. NowChatThemeable-Protokoll – iOS finden Sie Beispielcode-Fragmente zum Anwenden eines Designs auf Ihre Chat-UI.