---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Implémenter le virtuel et Agent actif la messagerie instantanée

# Implémenter le virtuel et Agent actif la messagerie instantanée {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes de lecture

Il Mobile SDK vous permet d'implémenter facilement des services virtuels et Agent actif de chat dans votre application iOS.
Vous utilisez l'API [NowChatService](https://servicenow-prod.fluidtopics.net/pGWDxP~iHvEphHxMJ~NBNQ#NowChatServiceiOSAPI "La classe NowChatService fournit des options de messagerie virtuelle et Agent actif de messagerie instantanée.") pour créer l'interface utilisateur de messagerie instantanée. Une fois l'interface utilisateur créée, vous devez démarrer la session de messagerie instantanée, puis démarrer le service de messagerie instantanée. À l'instar d'autres Mobile SDK services de fonctionnalité, l'API NowChatService fournit deux implémentations pour certaines de ses méthodes, y compris la méthode startChat(). Une implémentation renvoie un éditeur [Combine](https://developer.apple.com/documentation/combine) , et l'autre appelle un gestionnaire de complétion avec les résultats renvoyés.

Ce qui suit est un extrait de l'exemple d'application qui montre comment initialiser et démarrer une interface utilisateur et une session de messagerie instantanée.  

    // 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()
      }
    }

Avant de pouvoir exploiter la fonctionnalité de messagerie instantanée au sein de votre application, vous devez effectuer la configuration Agent virtuel au sein de votre ServiceNow instance. Pour plus de détails, voir [Virtual Agent](https://www.servicenow.com/docs/access?context=virtual-agent-landing-page&version=xanadu&pubname=xanadu-conversational-interfaces&ft:locale=en-US).

## Transmission de variables de contexte à et Agent virtuel messagerie Agent actif instantanée {#mobsdk-ios-imp-chat__section_vzg_wqj_k1c}

Vous pouvez transmettre des variables contextuelles de messagerie instantanée lors du démarrage d'une session de messagerie instantanée en transmettant le contextData paramètre dans les [NowChatService : startChat(contextData : \[String : Any\] ?)](pGWDxP~iHvEphHxMJ~NBNQ#NChatServ-startChat "Démarre une session de messagerie instantanée.") fonctions or [NowChatService : startChat(contextData : \[String : Any\] ? = nil, _ completion : @escaping (Result\<Void, NowChatServiceError\>))](pGWDxP~iHvEphHxMJ~NBNQ#NChatServ-startChat_O "Démarre une session de messagerie instantanée et exécute un bloc de complétion une fois que la session de messagerie instantanée a démarré.") . Pour en savoir plus sur les variables de contexte de la messagerie instantanée, reportez-vous à la section [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()
        }
      }
    }

## Thème de l'interface utilisateur de la messagerie instantanée

Vous pouvez personnaliser les couleurs de l'interface utilisateur de messagerie Agent actif instantanée and en Agent virtuel transmettant un objet de thème dans l'appel makeChatUI(). Pour obtenir la liste de tous les éléments que vous pouvez personnaliser, reportez-vous à la section [Protocole NowChatColoring - iOS](https://servicenow-prod.fluidtopics.net/rxVPCfVkxV6Uuae1dOvRlw#NowChatColoringiOSProtocol "Le protocole NowChatColoring définit les couleurs par défaut des éléments de l’interface utilisateur de messagerie Agent actif instantanée and Agent virtuel ."). Par défaut, l'interface utilisateur de la messagerie instantanée utilise le thème pour tous les éléments de l'interface NowUIColor utilisateur NowSDK. Consultez les exemples d'extraits [Protocole NowChatThemeable - iOS](https://servicenow-prod.fluidtopics.net/zzXUMapZAe0WBDRCNs33Gg "Le protocole NowWebThemeable fournit des propriétés qui vous permettent de remplacer les couleurs utilisées dans les pages Web hébergées sur votre ServiceNow instance dans une vue Web native.") de code sur la façon d'appliquer un thème à l'interface utilisateur de votre messagerie instantanée.

