Implementieren Sie Virtual und Service Desk-Mitarbeiter Chat

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 2 Minuten Lesedauer
  • 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.