NowChatConfiguration : iOS

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 6 minutes de lecture
  • La classe NowChatConfiguration vous permet de configurer des options sur une session de messagerie instantanée, telles que l’affichage d’une invite avant de fermer une fenêtre de messagerie instantanée, la désactivation des fonctionnalités lors de l’utilisation de la messagerie instantanée, l’application de différentes options de conversation lors de l’utilisation de la messagerie instantanée et la configuration de composants d’interface utilisateur dans Now Chat.

    NowChatConfiguration : NowChatConfiguration(closePrompt : ClosePrompt ?, disabledFeatures : [Feature] ? = nil, conversationOptions : [ConversationOption] ? = nil, uiConfiguration : UIConfiguration ? = nil)

    Configure les options pour la session de messagerie instantanée actuelle. Cette méthode vous permet d’afficher une invite avant de fermer une fenêtre de messagerie instantanée, de désactiver des fonctionnalités lors de l’utilisation de la messagerie instantanée, d’appliquer différentes options de conversation lors de l’utilisation de la messagerie instantanée et de configurer des composants d’interface utilisateur dans Now Chat.

    Tableau 1. Paramètres
    Nom Type Description
    closePrompt Fermer l’invite ? Invite à afficher avant de fermer la fenêtre de messagerie instantanée associée.

    Appelez la structure NowChatConfiguration.ClosePrompt() pour définir la valeur de ce paramètre.

    Par exemple :
    closePrompt = NowChatConfiguration.ClosePrompt(
      header = nil,
      message = "Are you sure you want to leave?",
      acceptButtonTitle = "Yes",
      declineButtonTitle = "No"
    )

    Si vous ne souhaitez pas afficher d’invite de fermeture, omettez l’argument closePrompt dans l’appel NowChatConfiguration( ).

    Fonctionnalités désactivées [Configuration NowChat.Caractéristique] ? Liste des fonctionnalités de messagerie instantanée à désactiver dans la session de messagerie instantanée actuelle.

    Valeur valide : startNewConversation : masquez/désactivez le bouton StartNew Conversation qui apparaît dans une fenêtre de messagerie instantanée.

    Les fonctionnalités de messagerie instantanée disponibles sont définies dans la classe d’énumération NowChatOptions.Feature .

    Par exemple :
    let disabledFeatures: [NowChatConfiguration.Feature]? = [.startNewConversation]

    Si vous ne souhaitez désactiver aucune fonctionnalité, omettez l’argument disabledFeatures dans l’appel NowChatConfiguration( ).

    options de conversation [Configuration NowChat.ConversationOption] ? Liste des options de conversation à appliquer à Now Chat.
    Valeurs valides :
    • endConversationOnExit : la conversation en cours se termine lorsque vous quittez la fenêtre Now Chat.
    • forceNewConversation : force une nouvelle conversation de messagerie instantanée au démarrage de NowChat.

    Les options de conversation disponibles sont définies dans la classe d’énumération NowChatConfiguration.ConversationOption .

    Par exemple :
    let conversationOptions: [NowChatConfiguration.ConversationOption]? = [.endConversationOnExit, .forceNewConversation]

    Si vous ne souhaitez désactiver aucune fonctionnalité, omettez l’argument conversationOptions dans l’appel NowChatConfiguration( ).

    uiConfiguration UIConfiguration ? Valeurs UIConfiguration à utiliser pour configurer les composants d’interface utilisateur dans Now Chat.
    Valeurs valides :
    • attachmentUploadButton : configuration de AttachmentUploadButton qui s’affiche à côté de l’entrée de texte lors d’une conversation avec un agent actif.
    • closeButton : configuration du CloseButton utilisé pour la navigation arrière sur la barre d’outils Now Chat.
    Par exemple :
    let attachmentUploadButton = NowChatConfiguration.AttachmentUploadButton(isVisible: false) // Default isVisible = true
    
    // Configure close button as Text
    let closeButtonText: NowChatConfiguration.CloseButtonType = .text("Exit")
    let uiConfigurationWithText = NowChatConfiguration.UIConfiguration(closeButton: closeButtonText)
    
    // Configure close button as image   
    let buttonImage = UIImage(systemName: "arrow.left.circle") ?? nil 
    var closeButtonImage: NowChatConfiguration.CloseButtonType?   
    if let buttonImage { closeButtonImage = .image(buttonImage) }   
      let uiConfigurationWithImage = NowChatConfiguration.UIConfiguration(closeButton: closeButtonImage)

    Si vous souhaitez utiliser des images personnalisées au lieu des images système fournies, les images doivent avoir une largeur comprise entre 22 et 44 pixels et une hauteur de 30 pixels, pour une résolution optimale.

    Pour utiliser la valeur par défaut de AttachmentUploadButton l’un ou l’autre CloseButtonType, omettez le bouton associé de l’argument UIConfiguration .

    Pour utiliser la valeur par défaut pour les deux boutons, omettez le UIConfiguration paramètre dans l’appel NowChatConfiguration( ).

    Tableau 2. Renvoie
    Type Description
    Configuration de NowChat Renvoie un objet NowChatConfiguration que vous pouvez transmettre lors de l’appel de la méthode NowChatConfiguration( ).

    L’exemple de code suivant montre comment appeler cette méthode pour configurer l’interface utilisateur de la messagerie instantanée.

    func makeChatScreen() -> UIViewController? {
      let closePrompt = NowChatConfiguration.ClosePrompt(
        header: nil,
        message: "Are you sure you want to leave?",
        acceptButtonTitle: "Yes",
        declineButtonTitle: "No"
      )
    
      let disabledFeatures: [NowChatConfiguration.Feature]? = [.startNewConversation]
    
      let conversationOptions: [NowChatConfiguration.ConversationOption]? = [.endConversationOnExit, .forceNewConversation] 
    
      let attachmentUploadButton = NowChatConfiguration.AttachmentUploadButton(isVisible: false) 
    
      // Configure close button as Text
      let closeButtonText: NowChatConfiguration.CloseButtonType = .text("Exit")
      let uiConfigurationWithText = NowChatConfiguration.UIConfiguration(closeButton: closeButtonText, attachmentUploadButton: attachmentUploadButton) 
     
      // Configure close button as image 
      let buttonImage = UIImage(systemName: "arrow.left.circle") ?? nil 
    
      var closeButtonImage: NowChatConfiguration.CloseButtonType?
      if let buttonImage {
        closeButtonImage = .image(buttonImage)
      }
      let uiConfigurationWithImage = NowChatConfiguration.UIConfiguration(closeButton: closeButtonImage, attachmentUploadButton: attachmentUploadButton)    
    
      let chatConfiguration = NowChatConfiguration(closePrompt: closePrompt, 
        disabledFeatures: disabledFeatures,
        conversationOptions: conversationOptions,
        uiConfiguration: uiConfigurationWithImage)
    
      let result = chatService.makeChatUI(theme: CarrascoChatTheme(chatColors: ChatColors()), chatConfiguration: chatConfiguration)  
    
      switch result { 
        case .success(let chatViewController):
          return chatViewController
        case .failure(let error):
          debugPrint("Chat screen creation failed with error: \(error)")
          return nil
      }
    }

    NowChatConfiguration : AttachmentUploadButton(isVisible : booléen = vrai)

    Définit les configurations d’interface utilisateur à appliquer au bouton Charger la pièce jointe qui apparaît à côté de l’entrée de texte lorsque vous parlez avec un agent actif.

    AttachmentUploadButton est une structure de la classe NowChatConfiguration .

    Tableau 3. Paramètres
    Nom Type Description
    isVisible Booléen Marqueur indiquant la visibilité du bouton Télécharger la pièce jointe.
    Valeurs valides :
    • vrai : le bouton Télécharger la pièce jointe est visible.
    • faux : le bouton Télécharger la pièce jointe est masqué.

    Par défaut : true

    Tableau 4. Renvoie
    Type Description
    Aucun

    L’exemple de code suivant montre comment masquer le AttachmentUploadButton.

    func makeChatScreen() -> UIViewController? {
      let attachmentUploadButton = NowChatConfiguration.AttachmentUploadButton(isVisible: false)
      let uiConfigurationWithAttachmentButton = NowChatConfiguration.UIConfiguration(attachmentUploadButton: attachmentUploadButton)         
    
      let chatConfiguration = NowChatConfiguration(uiConfiguration: uiConfigurationWithAttachmentButton) 
    
      let result = chatService.makeChatUI(theme: CarrascoChatTheme(chatColors: ChatColors()), chatConfiguration: chatConfiguration) 
    
      switch result {
        case .success(let chatViewController):
          return chatViewController
        case .failure(let error):
          debugPrint("Chat screen creation failed with error: \(error)")
          return nil
      }
    }

    NowChatConfiguration : ClosePrompt(header : String ?, message : String, acceptButtonTitle : String, declineButtonTitle : String)

    Crée et renvoie un objet ClosePrompt en fonction des paramètres transmis. Vous transmettez ensuite cet objet dans le constructeur NowChatConfiguration() pour configurer les options d’invite de fermeture dans une session de messagerie instantanée.

    Tableau 5. Paramètres
    Nom Type Description
    header Chaîne Texte à afficher dans l’en-tête de l’invite.

    Si vous ne souhaitez pas afficher d’en-tête d’invite, transmettez « nil ».

    message Chaîne Texte à afficher en tant que texte principal de l’invite.
    acceptButtonTitle Chaîne Texte à afficher sur le bouton primaire de l’invite pour fermer la fenêtre de messagerie instantanée.
    declineButtonTitle Chaîne Texte à afficher sur le bouton secondaire de l’invite qui permet de faire disparaître l’invite.

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

    NowChatConfiguration : UIConfiguration(closeButton : CloseButtonType ? = nil, attachmentUploadButton : AttachmentUploadButton ? = nul)

    Crée et renvoie un objet UIConfiguration en fonction des paramètres transmis. Vous transmettez ensuite cet objet dans le constructeur NowChatConfiguration() pour configurer les composants de l’interface utilisateur dans NowChat.

    UIConfiguration() est une structure de la classe NowChatConfiguration .

    Tableau 6. Paramètres
    Nom Type Description
    Bouton de fermeture CloseButtonType ? Configuration du CloseButtonType qui apparaît sur la barre d’outils NowChat et est utilisé pour la navigation arrière.
    Valeurs valides :
    • image (UIImage) : créer un bouton Fermer avec une image.
    • text (chaîne) : créez un bouton Fermer en tant que texte. Utilisez cette option pour transmettre un nom personnalisé au bouton de retour.

    Les options CloseButtonType disponibles sont définies dans la classe d’énumération NowChatConfiguration.CloseButtonType .

    Par exemple :
    func makeChatScreen() -> UIViewController? {
      // Configure close button as Text
      let closeButtonText: NowChatConfiguration.CloseButtonType = .text("Exit")
      let uiConfigurationWithText = NowChatConfiguration.UIConfiguration(closeButton: closeButtonText)
    
      // Configure close button as image
      let buttonImage = UIImage(systemName: "arrow.left.circle") ?? nil
    
      var closeButtonImage: NowChatConfiguration.CloseButtonType?
      if let buttonImage {
        closeButtonImage = .image(buttonImage)
      }
      let uiConfigurationWithImage = NowChatConfiguration.UIConfiguration(closeButton: closeButtonImage)
    
      let chatConfiguration = NowChatConfiguration(uiConfiguration: uiConfigurationWithImage) 
    
      // or 
      // let chatConfiguration = NowChatConfiguration(uiConfiguration: uiConfigurationWithText) 
    
    attachmentUploadButton Bouton de téléchargement de pièce jointe ? Configuration de AttachmentUploadButton qui s’affiche à côté de l’entrée de texte lors d’une conversation avec un agent actif.

    Appelez la NowChatConfiguration : AttachmentUploadButton(isVisible : booléen = vrai) méthode pour définir la valeur de ce paramètre.

    Par exemple :
    let attachmentUploadButton = NowChatConfiguration.AttachmentUploadButton(isVisible: false)
    let uiConfigurationWithAttachmentButton = NowChatConfiguration.UIConfiguration(attachmentUploadButton: attachmentUploadButton)         
    
    let chatConfiguration = NowChatConfiguration(uiConfiguration: uiConfigurationWithAttachmentButton)
    Tableau 7. Renvoie
    Type Description
    Objet Objet de configuration de l’interface utilisateur

    L’exemple de code suivant montre comment appeler la sous-classe UIConfiguration() pour définir la configuration de l’interface utilisateur de la messagerie instantanée.

    func makeChatScreen() -> UIViewController? {
    
      let attachmentUploadButton = NowChatConfiguration.AttachmentUploadButton(isVisible: false)
    
      // Configure close button as image
      let buttonImage = UIImage(systemName: "arrow.left.circle") ?? nil
    
      var closeButtonImage: NowChatConfiguration.CloseButtonType?
      if let buttonImage {
        closeButtonImage = .image(buttonImage)
      }
      let uiConfigurationWithImage = NowChatConfiguration.UIConfiguration(closeButton: closeButtonImage, attachmentUploadButton: attachmentUploadButton)         
    
      let chatConfiguration = NowChatConfiguration(uiConfiguration: uiConfigurationWithImage) 
    
      let result = chatService.makeChatUI(theme: CarrascoChatTheme(chatColors: ChatColors()), chatConfiguration: chatConfiguration)
    
      switch result { 
        case .success(let chatViewController):
          return chatViewController
        case .failure(let error):
          debugPrint("Chat screen creation failed with error: \(error)")
          return nil
      }
    }