NowChatConfiguration - iOS

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 6 min. de leitura
  • A classe NowChatConfiguration permite que você configure opções em uma sessão de bate-papo, como mostrar um aviso antes de fechar uma janela de bate-papo, desabilitar recursos ao usar o bate-papo, aplicar diferentes opções de conversa ao usar o bate-papo e configurar componentes de IU no NowChat.

    NowChatConfiguration - NowChatConfiguration(closePrompt: ClosePrompt?, disableFeatures: [Recurso]? = nil, conversationOptions: [ConversationOption]? = nil, uiConfiguration: UIConfiguration? = nil)

    Configura opções para a sessão de bate-papo atual. Este método permite que você mostre um aviso antes de fechar uma janela de bate-papo, desabilite recursos ao usar o bate-papo, aplique diferentes opções de conversa ao usar o bate-papo e configure componentes de IU no NowChat.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    fecharPrompt ClosePrompt? Aviso a ser exibido antes de fechar a janela de bate-papo associada.

    Chame a estrutura NowChatConfiguration.ClosePrompt() para definir o valor deste parâmetro.

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

    Se você não quiser exibir um aviso de fechamento, omita o argumento closePrompt na chamada NowChatConfiguration().

    desabilitadosRecursos [NowChatConfiguration.​Recurso]? Lista de recursos de bate-papo a serem desabilitados na sessão de bate-papo atual.

    Valor válido: startNewConversation - Ocultar/desativar o botão Iniciar nova conversa que aparece em uma janela de bate-papo.

    Os recursos de bate-papo disponíveis são definidos na classe de enumeração NowChatOptions.Feature.

    Por exemplo:
    let disabledFeatures: [NowChatConfiguration.Feature]? = [.startNewConversation]

    Se você não quiser desabilitar nenhum recurso, omita o argumento disabledFeatures na chamada NowChatConfiguration().

    conversaOpções [NowChatConfiguration.​ConversationOption]? Lista de opções de conversa a serem aplicadas ao NowChat.
    Valores válidos:
    • endConversationOnExit: a conversa em andamento é encerrada ao sair da janela do NowChat.
    • forceNewConversation: força uma nova conversa de bate-papo quando o NowChat é iniciado.

    As opções de conversa disponíveis são definidas na classe de enumeração NowChatConfiguration.ConversationOption.

    Por exemplo:
    let conversationOptions: [NowChatConfiguration.ConversationOption]? = [.endConversationOnExit, .forceNewConversation]

    Se você não quiser desabilitar nenhum recurso, omita o argumento conversationOptions na chamada NowChatConfiguration().

    iuConfiguration UIConfiguration? Valores de UIConfiguration a serem usados para configurar componentes de IU no NowChat.
    Valores válidos:
    • attachmentUploadButton: configuração do AttachmentUploadButton que é mostrado ao lado da entrada de texto durante a conversa com um atendente.
    • closeButton: configuração do CloseButton usado para navegação de retorno na barra de ferramentas do NowChat.
    Por exemplo:
    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)

    Se você quiser usar imagens personalizadas em vez das imagens do sistema fornecidas, as imagens devem ter entre 22 e 44 pixels de largura e 30 pixels de altura, para uma resolução ideal.

    Para usar o padrão para AttachmentUploadButton ou CloseButtonType, omita o botão associado do argumento UIConfiguration.

    Para usar o padrão para ambos os botões, omita o parâmetro UIConfiguration na chamada NowChatConfiguration().

    Tabela 2. Retornos
    Tipo Descrição
    NowChatConfiguration Retorna um objeto NowChatConfiguration que você pode passar ao chamar o método NowChatConfiguration().

    O exemplo de código a seguir mostra como chamar este método para configurar a IU de bate-papo.

    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: booliano = verdadeiro)

    Define as configurações de IU a serem aplicadas ao botão de carregar anexo que aparece ao lado da entrada de texto ao falar com um atendente.

    AttachmentUploadButton é uma estrutura da classe NowChatConfiguration.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    IsVisible Booliano Sinalizador que indica a visibilidade do botão de carregar anexo.
    Valores válidos:
    • verdadeiro: o botão Carregar anexo está visível.
    • falso: o botão Carregar anexo está oculto.

    Padrão: verdadeiro

    Tabela 4. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como ocultar o 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 (cabeçalho: cadeia de caracteres?, mensagem: cadeia de caracteres, allowButtonTitle: cadeia de caracteres, recusaButtonTitle: cadeia de caracteres)

    Cria e retorna um objeto ClosePrompt com base nos parâmetros passados. Em seguida, você passa este objeto para o construtor NowChatConfiguration() para configurar as opções de aviso de fechamento em uma sessão de bate-papo.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    cabeçalho Cadeia de caracteres Texto a ser exibido no cabeçalho do prompt.

    Se você não quiser exibir um cabeçalho de prompt, passe "nil".

    mensagem Cadeia de caracteres Texto a ser exibido como o texto principal do prompt.
    aceitarBotãoTítulo Cadeia de caracteres Texto a ser exibido no botão primário do prompt para fechar a janela de bate-papo.
    recusarTítuloDoBotão Cadeia de caracteres Texto a ser exibido no botão secundário do prompt que descarta o prompt.

    O exemplo de código a seguir mostra como chamar esta função.

    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? = nil)

    Cria e retorna um objeto UIConfiguration com base nos parâmetros passados. Em seguida, você passa este objeto para o construtor NowChatConfiguration() para configurar os componentes de IU no NowChat.

    UIConfiguration() é uma estrutura da classe NowChatConfiguration.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    botãoFechar CloseButtonType? Configuração do CloseButtonType que aparece na barra de ferramentas do NowChat e é usada para navegação de retorno.
    Valores válidos:
    • imagem (UIImage): crie um botão de fechar com uma imagem.
    • text (Cadeia de caracteres): cria um botão Fechar como texto. Use para passar um nome personalizado para o botão Voltar.

    As opções de CloseButtonType disponíveis são definidas na classe de enumeração NowChatConfiguration.CloseButtonType.

    Por exemplo:
    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 AttachmentUploadButton? Configuração do AttachmentUploadButton que é mostrado ao lado da entrada de texto durante a conversa com um atendente.

    Chame o método NowChatConfiguration - AttachmentUploadButton (isVisible: booliano = verdadeiro) para definir o valor deste parâmetro.

    Por exemplo:
    let attachmentUploadButton = NowChatConfiguration.AttachmentUploadButton(isVisible: false)
    let uiConfigurationWithAttachmentButton = NowChatConfiguration.UIConfiguration(attachmentUploadButton: attachmentUploadButton)         
    
    let chatConfiguration = NowChatConfiguration(uiConfiguration: uiConfigurationWithAttachmentButton)
    Tabela 7. Retornos
    Tipo Descrição
    Objeto Objeto de configuração de IU

    O exemplo de código a seguir mostra como chamar a subclasse UIConfiguration() para definir a configuração de IU do bate-papo.

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