---
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


---

# Classe NowChatService : iOS

# Classe NowChatService : iOS {#ariaid-title1}

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

La classe NowChatService fournit des options de messagerie virtuelle et Agent actif de messagerie instantanée.

À l'aide de cette classe, vous pouvez démarrer et arrêter des services de messagerie instantanée, démarrer des sessions de messagerie instantanée, créer une interface utilisateur de messagerie instantanée et vous abonner ou vous désabonner de messages non lus.
{#NowChatServiceiOSAPI__entry__2}

| Nom | Description |
|-|-|
| configuration | Paramètres de configuration fournis lors de l'initialisation du service. Type de données : [NowServiceConfiguration](https://servicenow-prod.fluidtopics.net/V01HrOtfNsIM7_JMqFBMSg#NowServiceConfigurationiOSStruct "La structure NowServiceConfiguration définit les informations de configuration d’un service d’fonctionnalités.") |
| instanceVersion | Version de l'instance associée ServiceNow , par exemple Utah ou Quebec. Type de données : chaîne |
| networkService | Service réseau associé à ce service de messagerie instantanée. Type de données : NetworkService |
| Type de session | Type de session. Valeurs possibles : * Authentifié * Invités * Identité empruntée * Inconnu Type de données : SessionType |
[Tableau 1. Propriétés]

## NowChatService : init(configuration : NowServiceConfiguration, delegate : NowChatServiceDelegate ?, coreServiceProvider : NowCoreServiceProviding ? = nil) {#ariaid-title2}

Initialise une nouvelle instance NowChatService.
{#NChatServ-init_O_S_S__table_jgv_vqp_npb__entry__3}

| Nom | Type | Description |
|-|-|-|
| configuration | [Configuration Now ServiceConfiguration](https://servicenow-prod.fluidtopics.net/V01HrOtfNsIM7_JMqFBMSg#NowServiceConfigurationiOSStruct "La structure NowServiceConfiguration définit les informations de configuration d’un service d’fonctionnalités.") | Informations de configuration nécessaires pour initialiser correctement le service. |
| délégué | NowChatServiceDelegate | Facultatif. Objet délégué de rappel NowChat implémentant le protocole NowChatServiceDelegate. Par défaut : nul |
| coreServiceProvider (en anglais seulement) | NowCoreServiceProviding | Facultatif. Objet implémentant le protocole NowCoreServiceProviding Permet d'accéder aux services Now Chat. Par défaut : nul |
[Tableau 2. Paramètres]

{#NChatServ-init_O_S_S__table_jgv_vqp_npb}  
L'exemple de code suivant montre comment appeler cette fonction.

    guard let coreService = NowSDK.core() else {
      // Error with NowServiceError.sdkNotConfigured
      return
    }

    guard 
      let instanceUrl = URL(string: "http://sample.service-now.com"), 
      let serviceConfig = NowSDK.makeServiceConfiguration(for: instanceUrl) else {
        // Could not create service -- 
        // NowServiceError.serviceConfigurationInvalid
        return
      }
        
    let chatService = NowChatService(configuration: serviceConfig, delegate: delegate, coreServiceProvider: coreService)

## NowChatService : makeChatUI(theme : NowChatThemeable, chatOptions : NowChatOptions ? = nil) -\> Result\<UIViewController, NowChatServiceError\>) {#ariaid-title3}

Crée un `UIViewController` qui héberge l'interface utilisateur de la messagerie instantanée.
Bien que cette fonction crée l'interface utilisateur de messagerie instantanée, vous devez toujours lancer la session de messagerie instantanée en appelant la fonction startChat(). Vous devez effectuer cet appel au fur et à mesure que l'interface utilisateur de la messagerie instantanée devient visible. Pour plus d'informations, consultez l'exemple d'application associé et le [Mobile SDK Guide du développeur - iOS](https://servicenow-prod.fluidtopics.net/GyLXT2XNjZ39MNsJGT9VQA "Cela ServiceNow Mobile SDK vous permet d’exploiter les fonctionnalités et les ressources de la ServiceNow plateforme au sein de vos applications iOS mobiles autonomes.")fichier .
{#NChatServ-makeChatUI_O__table_lkt_lvj_npb__entry__3}

| Nom | Type | Description |
|-|-|-|
| thème | Objet NowChatThemeable | Informations de thème pour l'interface utilisateur de messagerie instantanée à créer. |
| options de messagerie instantanée | [NowChatOptions ?](https://servicenow-prod.fluidtopics.net/W3NPsjBFnVaBG77FVay11A#NowChatOptionsiOS "La classe NowChatOptions vous permet de configurer des options, telles que l’affichage d’une invite avant la fermeture d’une fenêtre de messagerie instantanée ou la désactivation de fonctionnalités lors de l’utilisation de la messagerie instantanée, sur une session de messagerie instantanée.") | Facultatif. Options à appliquer à la session de messagerie instantanée. |
[Tableau 3. Paramètres]

{#NChatServ-makeChatUI_O__table_lkt_lvj_npb} {#NChatServ-makeChatUI_O__table_mkt_lvj_npb__entry__2}

| Type | Description |
|-|-|
| Objet | Réussite : objet UIViewController qui contient les informations de configuration du contrôleur de vue d'interface utilisateur. Échec : objet NowChatServiceError. Erreurs possibles : * messagerie instantanéeServiceNon valide * coreServiceInvalid * guestUserNotAllowed * invalidCredentials (Informations d'identification invalides) * noSession (en anglais seulement) * Inconnu * unsupportedServer |
[Tableau 4. Renvoie]

{#NChatServ-makeChatUI_O__table_mkt_lvj_npb}  
L'exemple de code suivant montre comment appeler cette fonction.

    func makeChatScreen() -> UIViewController? {
      guard let chatService = chatService else { return nil }
      let closePrompt = NowChatOptions.ClosePrompt(
        header: "Close Window",
        message: "Are you sure you want to close the chat window?",
        acceptButtonTitle: "Yes",
        declineButtonTitle: "No")

      let disabledFeatures = [.startNewConversation]
        
      let chatOptions = NowChatOptions(closePrompt: closePrompt,
        disabledFeatures: disabledFeatures,
        forceNewConversation: true)
        
      let result = chatService.makeChatUI(theme: CarrascoChatTheme(chatColors: ChatColors()), chatOptions: chatOptions)
        
      switch result {
      case .success(let chatViewController):
        return chatViewController
      case .failure(let error):
        return nil
      }
    }

## NowChatService : shutdown() {#ariaid-title4}

Arrête le service de messagerie instantanée, y compris toutes les sessions de messagerie instantanée actives.
Après l'appel de cette fonction, le `NowChatService` associé est inactif et ne peut pas être réutilisé. Pour établir une autre session de messagerie instantanée, créez une nouvelle instance `NowChatService` en appelant la fonction NowChat.makeChatService().
{#NChatServ-shutdown__table_zm2_tfk_npb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 5. Paramètres]

{#NChatServ-shutdown__table_zm2_tfk_npb} {#NChatServ-shutdown__table_an2_tfk_npb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 6. Renvoie]

{#NChatServ-shutdown__table_an2_tfk_npb}  
L'exemple de code suivant montre comment appeler cette fonction.

    private func resetChat() {
      chatService?.shutdown()
      chatService = nil
      initializeChatService()
      viewState = makeViewState()
    }

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

    func makeViewState() -> ViewState {
      ViewState(chatEnabled: chatService != nil,
        menuItems: menuItems)
    }

## NowChatService : startChat(contextData : \[String : Any\] ?) {#ariaid-title5}

Démarre une session de messagerie instantanée.
Remarque :  
Si vous souhaitez exécuter une tâche de complétion après le démarrage de la session de chat, utilisez la [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é.") fonction.
{#NChatServ-startChat__table_myg_12k_npb__entry__3}

| Nom | Type | Description |
|-|-|-|
| contextData | \[chaîne : n'importe laquelle\] ? | Facultatif. Dictionnaire contenant des variables de contexte de messagerie instantanée transmises dans la session de messagerie instantanée. 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). |
[Tableau 7. Paramètres]

{#NChatServ-startChat__table_myg_12k_npb} {#NChatServ-startChat__table_nyg_12k_npb__entry__2}

| Type | Description |
|-|-|
| void ou String | Réussite : nul Erreur : NowChatServiceError Erreurs possibles : * messagerie instantanéeServiceNon valide * coreServiceInvalid * guestUserNotAllowed * invalidCredentials (Informations d'identification invalides) * noSession (en anglais seulement) * Inconnu * unsupportedServer |
[Tableau 8. Renvoie]

{#NChatServ-startChat__table_nyg_12k_npb}  
L'exemple de code suivant montre comment appeler cette fonction sans transmettre de variables de contexte.

    chatService.startChat { [weak self] result in
      if case .failure(let error) = result {
        debugPrint("Chat session initialization failed with error: \(error)")
        self?.resetChat()
      }
    }

L'exemple de code suivant montre comment appeler cette fonction en transmettant des variables de contexte.

    chatService.startChat { [weak self] result in
      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()
        }
      }
    }

## NowChatService : startChat(contextData : \[String : Any\] ? = nil, _ completion : @escaping (Result\<Void, NowChatServiceError\>)) {#ariaid-title6}

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é.
{#NChatServ-startChat_O__table_tk1_bbk_npb__entry__3}

| Nom | Type | Description |
|-|-|-|
| contextData | \[chaîne : n'importe laquelle\] ? | Facultatif. Dictionnaire contenant des variables de contexte de messagerie instantanée transmises dans la session de messagerie instantanée. 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). |
| achèvement | Objet | Bloc de complétion à exécuter une fois que la session de messagerie instantanée a démarré. |
[Tableau 9. Paramètres]

{#NChatServ-startChat_O__table_tk1_bbk_npb} {#NChatServ-startChat_O__table_uk1_bbk_npb__entry__2}

| Type | Description |
|-|-|
| void ou String | Valeurs de retour pour le bloc de complétion : * Réussite : nul * Erreur : NowChatServiceError Erreurs possibles : * messagerie instantanéeServiceNon valide * coreServiceInvalid * guestUserNotAllowed * invalidCredentials (Informations d'identification invalides) * noSession (en anglais seulement) * Inconnu * unsupportedServer {#NChatServ-startChat_O__ul_e1n_lpj_k1c} |
[Tableau 10. Renvoie]

{#NChatServ-startChat_O__table_uk1_bbk_npb}  
L'exemple de code suivant montre comment appeler cette fonction sans données de contexte.

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

    func makeViewState() -> ViewState {
      ViewState(chatEnabled: chatService != nil,
        menuItems: menuItems)
    }

L'exemple de code suivant montre comment appeler cette fonction avec des données de contexte.

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

    func makeViewState() -> ViewState {
      ViewState(chatEnabled: chatService != nil,
        menuItems: menuItems)
    }

## NowChatService : subscribeToUnreadMessageCount(pollingInterval : TimeInterval, completion : @escaping (Int) -\> Void) {#ariaid-title7}

S'abonne à l'écouteur de nombre de messages non lus.
{#NChatServ-subToUnreadMsgCount_S__table_pv1_3ln_1qb__entry__3}

| Nom | Type | Description |
|-|-|-|
| intervalle d'interrogation | Intervalle de temps | Fréquence à laquelle interroger le service Web pour le nombre de messages de messagerie instantanée non lus. Unité : Secondes |
| achèvement | @escaping (int) -\> nul) | Gestionnaire de complétion à appeler pour signaler le nombre de messages de messagerie instantanée non lus. Int: nombre de messages de messagerie instantanée non lus. |
[Tableau 11. Paramètres]

{#NChatServ-subToUnreadMsgCount_S__table_pv1_3ln_1qb} {#NChatServ-subToUnreadMsgCount_S__table_qv1_3ln_1qb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 12. Renvoie]

{#NChatServ-subToUnreadMsgCount_S__table_qv1_3ln_1qb}  
L'exemple de code suivant montre comment appeler cette fonction.

    ...
    if viewModel.isPolling {
      viewModel.unsubscribeFromUnreadMessageCount()
      viewState.pollingInterval = ""
    } else {
      viewModel.subscribeToUnreadMessageCount(pollingInterval: timeInterval)
    }
    ...

    func subscribeToUnreadMessageCount(pollingInterval: TimeInterval) {
      chatService.subscribeToUnreadMessageCount(pollingInterval: pollingInterval) { [weak self] count in
        self?.unreadMessageCount = count
      }
      isPolling = true
    }

## NowChatService : unsubscribeFromUnreadMessageCount() {#ariaid-title8}

Se désabonne de la réception de l'écouteur de nombre de messages non lus.
{#NChatServ-unsubFromUnreadMsgCount__table_inn_ywn_1qb__entry__3}

| Nom | Type | Description |
|-|-|-|
| Aucun |   |   |
[Tableau 13. Paramètres]

{#NChatServ-unsubFromUnreadMsgCount__table_inn_ywn_1qb} {#NChatServ-unsubFromUnreadMsgCount__table_jnn_ywn_1qb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 14. Renvoie]

{#NChatServ-unsubFromUnreadMsgCount__table_jnn_ywn_1qb}  
L'exemple de code suivant montre comment appeler cette fonction.

    ...
    if viewModel.isPolling {
      viewModel.unsubscribeFromUnreadMessageCount()
      viewState.pollingInterval = ""
    } else {
      viewModel.subscribeToUnreadMessageCount(pollingInterval: timeInterval)
    }
    ...
    func unsubscribeFromUnreadMessageCount() {
      chatService.unsubscribeFromUnreadMessageCount()
      isPolling = false
      unreadMessageCount = 0
    }


