NowChatConfiguration - iOS

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기17분
  • NowChatConfiguration 클래스를 사용하면 채팅 창을 닫기 전에 프롬프트 표시, 채팅 사용 중 기능 비활성화, 채팅 사용 시 다른 대화 옵션 적용, NowChat에서 UI 구성 요소 구성 등 채팅 세션의 옵션을 구성할 수 있습니다.

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

    현재 채팅 세션에 대한 옵션을 구성합니다. 이 방법을 사용하면 채팅 창을 닫기 전에 프롬프트를 표시하고, 채팅을 사용하는 동안 기능을 비활성화하고, 채팅을 사용할 때 다른 대화 옵션을 적용하고, NowChat에서 UI 구성요소를 구성할 수 있습니다.

    표 1. 매개변수
    이름 유형 설명
    close프롬프트 프롬프트 닫기? 연결된 채팅 창을 닫기 전에 표시할 프롬프트

    NowChatConfiguration.ClosePrompt() 구조체를 호출하여 이 파라미터의 값을 정의합니다.

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

    닫기 프롬프트를 표시하지 않으려면 NowChatConfiguration() 호출에서 인수를 생략closePrompt 합니다.

    비활성화된 기능 [NowChatConfiguration.특징]? 현재 채팅 세션에서 비활성화할 채팅 기능 목록입니다.

    유효한 값: startNewConversation - 채팅 창에 나타나는 새 대화 시작 단추를 숨기거나 사용하지 않도록 설정합니다.

    사용 가능한 채팅 기능은 NowChatOptions.Feature 열거형 클래스에 정의되어 있습니다.

    예:
    let disabledFeatures: [NowChatConfiguration.Feature]? = [.startNewConversation]

    기능을 비활성화하지 않으려면 NowChatConfiguration() 호출에서 인수를 생략하십시오disabledFeatures.

    대화 옵션 [NowChatConfiguration.ConversationOption]을 사용합니까? NowChat에 적용할 대화 옵션 목록입니다.
    유효한 값은 다음과 같습니다.
    • endConversationOnExit: NowChat 창을 종료하면 진행 중인 대화가 종료됩니다.
    • forceNewConversation: NowChat이 시작될 때 새 채팅 대화를 강제 실행합니다.

    사용 가능한 대화 옵션은 NowChatConfiguration.ConversationOption 열거형 클래스에 정의되어 있습니다.

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

    기능을 비활성화하지 않으려면 NowChatConfiguration() 호출에서 인수를 생략하십시오conversationOptions.

    ui구성 UIConfiguration? NowChat에서 UI 구성요소를 구성하는 데 사용할 UIConfiguration 값입니다.
    유효한 값은 다음과 같습니다.
    • attachmentUploadButton: 라이브 에이전트와 대화하는 동안 텍스트 입력 옆에 표시되는 AttachmentUploadButton 에 대한 구성입니다.
    • closeButton: NowChat 도구 모음에서 뒤로 탐색에 사용되는 CloseButton 에 대한 구성입니다.
    예:
    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)

    제공된 시스템 이미지 대신 사용자 지정 이미지를 사용하려면 최적의 해상도를 위해 이미지의 너비가 22-44픽셀, 높이가 30픽셀 사이여야 합니다.

    또는 AttachmentUploadButtonCloseButtonType에 대한 기본값을 사용하려면 인수에서 UIConfiguration 연결된 단추를 생략합니다.

    두 버튼에 기본값을 사용하려면 NowChatConfiguration() 호출에서 매개변수를 생략 UIConfiguration 하십시오.

    표 2. 반환
    유형 설명
    NowChat구성 NowChatConfiguration() 메서드를 호출할 때 전달할 수 있는 NowChatConfiguration 객체를 반환합니다.

    다음 코드 예제에서는 이 메서드를 호출하여 채팅 UI를 구성하는 방법을 보여 줍니다.

    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: 부울 = true)

    라이브 에이전트와 대화하는 동안 텍스트 입력 옆에 나타나는 첨부 파일 업로드 버튼에 적용할 UI 구성을 정의합니다.

    AttachmentUploadButtonNowChatConfiguration 클래스의 구조체입니다.

    표 3. 매개변수
    이름 유형 설명
    isVisible 부울 첨부 파일 업로드 버튼의 가시성을 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 첨부 파일 업로드 버튼이 표시됩니다.
    • 아니오: 첨부 파일 업로드 버튼이 숨겨져 있습니다.

    기본값: true

    표 4. 반환
    유형 설명
    안 함

    다음 코드 예제에서는 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(헤더: 문자열?, 메시지: 문자열, acceptButtonTitle: 문자열, declineButtonTitle: 문자열)

    전달된 매개변수를 기반으로 ClosePrompt 객체를 만들고 반환합니다. 그런 다음 이 객체를 NowChatConfiguration() 생성자에 전달하여 채팅 세션 내에서 프롬프트 닫기 옵션을 구성합니다.

    표 5. 매개변수
    이름 유형 설명
    헤더 문자열 프롬프트의 헤더에 표시할 텍스트입니다.

    프롬프트 헤더를 표시하지 않으려면 "nil"을 전달합니다.

    메시지 문자열 프롬프트의 메인 텍스트로 표시할 텍스트입니다.
    acceptButtonTitle 문자열 채팅 창을 닫기 위한 프롬프트의 기본 버튼에 표시할 텍스트입니다.
    거부버튼 제목 문자열 프롬프트를 해제하는 프롬프트의 보조 버튼에 표시할 텍스트입니다.

    다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    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)

    전달된 매개변수를 기반으로 UIConfiguration 객체를 만들고 반환합니다. 그런 다음 이 객체를 NowChatConfiguration() 생성자에 전달하여 NowChat에서 UI 구성요소를 구성합니다.

    UIConfiguration()NowChatConfiguration 클래스의 구조체입니다.

    표 6. 매개변수
    이름 유형 설명
    닫기버튼 CloseButtonType? NowChat 도구 모음에 나타나고 뒤로 탐색에 사용되는 CloseButtonType 에 대한 구성입니다.
    유효한 값은 다음과 같습니다.
    • 이미지(UIImage): 이미지로 닫기 단추를 만듭니다.
    • text(문자열): 닫기 버튼을 텍스트로 만듭니다. 이를 사용하여 뒤로 단추의 사용자 지정 이름을 전달합니다.

    사용 가능한 CloseButtonType 옵션은 NowChatConfiguration.CloseButtonType 열거형 클래스에 정의되어 있습니다.

    예:
    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 에 대한 구성입니다.

    NowChatConfiguration - AttachmentUploadButton(isVisible: 부울 = true) 메서드를 호출하여 이 매개변수의 값을 정의합니다.

    예:
    let attachmentUploadButton = NowChatConfiguration.AttachmentUploadButton(isVisible: false)
    let uiConfigurationWithAttachmentButton = NowChatConfiguration.UIConfiguration(attachmentUploadButton: attachmentUploadButton)         
    
    let chatConfiguration = NowChatConfiguration(uiConfiguration: uiConfigurationWithAttachmentButton)
    표 7. 반환
    유형 설명
    객체 UI 구성 객체

    다음 코드 예제에서는 UIConfiguration() 하위 클래스를 호출하여 채팅 UI 구성을 설정하는 방법을 보여 줍니다.

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