---
sourceDocument: Xanadu-API-Referenz
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - de-DE

ft:publication_title :

    - Xanadu-API-Referenz

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Implementieren Sie Virtual und Service Desk-Mitarbeiter den Chat

# Implementieren Sie Virtual und Service Desk-Mitarbeiter den Chat {#ariaid-title1}

* Freigeben Version: Xanadu
* 
* Aktualisiert 1. August 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 Minuten Lesedauer

Mit Mobile SDK können Sie virtuelle und Chat-Services Service Desk-Mitarbeiter ganz einfach in Ihrer iOS-Anwendung implementieren.
Sie verwenden die [NowChatService-](https://servicenow-prod.fluidtopics.net/~D6fMJwXgMUVo11kFExEvQ#NowChatServiceiOSAPI "Die NowChatService -Klasse stellt Virtual- und Service Desk-Mitarbeiter -Chat-Fähigkeiten bereit.") 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](https://developer.apple.com/documentation/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](https://www.servicenow.com/docs/access?context=virtual-agent-landing-page&version=xanadu&pubname=xanadu-conversational-interfaces&ft:locale=en-US).

## Übergabe von Kontextvariablen an Service Desk-Mitarbeiter - und Virtual Agent -Chat {#mobsdk-ios-imp-chat__section_vzg_wqj_k1c}

Sie können Chat-Kontextvariablen beim Starten einer Chatsitzung übergeben, indem Sie den Parameter contextData in den Funktionen [NowChatService -- startChat(contextData: \[Zeichenfolge: Beliebig\]?)](~D6fMJwXgMUVo11kFExEvQ#NChatServ-startChat "Startet eine Chatsitzung.") oder [NowChatService - startChat(contextData: \[Zeichenfolge: Beliebig\]? = nil, _ Abschluss: @escaping (Ergebnis\<Void, NowChatServiceError\> ))](~D6fMJwXgMUVo11kFExEvQ#NChatServ-startChat_O "Startet eine Chatsitzung und führt einen Abschlussblock aus, nachdem die Chatsitzung gestartet wurde.") übergeben. Weitere Informationen zu Chat-Kontextvariablen finden Sie unter [Live agent chat context variables](https://www.servicenow.com/docs/access?context=live-agent-chat-context-vars&version=xanadu&pubname=xanadu-conversational-interfaces&ft:locale=en-US).  

    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](https://servicenow-prod.fluidtopics.net/K60TE2pd4xZPAVaA4quefg#NowChatColoringiOSProtocol "Das NowChatColoring- Protokoll definiert Standardfarben für die Elemente in der Chat-UI Service Desk-Mitarbeiter und Virtual Agent."). Standardmäßig verwendet die Chat-UI das Design NowUIColor für alle NowSDK-UI-Elemente. [NowChatThemeable-Protokoll -- iOS](https://servicenow-prod.fluidtopics.net/mZelWybRRixT9d_aTw7Y3g "Das Protokoll „NowWebThemeable“ bietet Eigenschaften, mit denen Sie die Farben, die in Webseiten verwendet werden, die auf Ihrer Instanz ServiceNow gehostet werden, in einer nativen Webansicht überschreiben können.") finden Sie Beispielcode-Fragmente zum Anwenden eines Designs auf Ihre Chat-UI.

