Implementieren Sie Virtual und Service Desk-Mitarbeiter Chat
Mit Mobile SDK können Sie virtuelle und Service Desk-Mitarbeiter Chat-Services einfach in Ihrer iOS-Anwendung implementieren.
Sie verwenden die NowChatService- API, um die Chat-Benutzeroberfläche zu erstellen. Sobald die Benutzeroberfläche erstellt wurde, müssen Sie die Chatsitzung starten und dann den Chatservice starten. Ähnlich wie andere Funktionsservices von Mobile SDK bietet die NowChatService- API zwei Implementierungen für einige ihrer Methoden, einschließlich der startChat()- Methode. Eine Implementierung gibt einen Kombinationsherausgeber zurück, und die andere ruft einen Abschluss-Handler mit den Rückgabeergebnissen auf.
Das Folgende ist ein 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 Chat-Funktionalität in Ihrer Anwendung nutzen können, müssen Sie Virtual Agent in Ihrer ServiceNow -Instanz konfigurieren. Details finden Sie unter Virtual Agent.
Kontextvariablen werden an Service Desk-Mitarbeiter und Virtual Agent Chat übergeben
Sie können Chat-Kontextvariablen beim Starten einer Chat-Sitzung übergeben, indem Sie den Parameter contextData in den Funktionen NowChatService – startChat(contextData: [String: Any]?) oder NowChatService – startChat(contextData: [String: Any]? = nil, _ abgeschlossen: @escaping (Result<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()
}
}
}Design der Chat-Benutzeroberfläche
Sie können die Farben der Chat-UI von 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. Unter NowChatThemeable-Protokoll – iOS finden Sie Beispielcode-Fragmente, wie Sie ein Thema auf Ihre Chat-UI anwenden können.