NowChat API - iOS

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기4분
  • NowChat API는 사용자가 NowChat 서비스 인스턴스를 인스턴스화할 수 있는 최상위 글로벌 API입니다.

    NowChat - makeChatService(instanceUrl: URL, delegate: NowChatServiceDelegate?)

    지정된 구성을 사용하여 NowChatService의 인스턴스를 작성합니다.

    주:
    이 함수를 호출하기 전에 SDK를 초기화해야 하며, 그렇지 않으면 완료 블록이 sdkNotConfigured 오류와 함께 호출됩니다. SDK를 초기화하려면 원하는 구성으로 NowSDK.configure() 메서드를 호출합니다.
    표 1. 매개변수
    이름 유형 설명
    instanceUrl URL 채팅 서비스를 제공하는 인스턴스의 URL입니다 ServiceNow .
    위임 NowChatServiceDelegate 옵션입니다. NowChatServiceDelegate 프로토콜을 구현하는 대리자 객체입니다.
    표 2. 반환
    유형 설명
    AnyPublisher<NowChatService, NowServiceError> 성공하면 초기화된 NowChatService 객체를 반환합니다. 실패하면 NowServiceError 객체를 반환합니다.

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

    ….
    guard 
      let jwtUrl = URL(string: "http://xx.xx.xx.xxx:8080"),
      let instanceUrl = URL(string: "https://instance.service-now.com") else {
        return
      }
    // AuthorizationProvider – struct conforming to NowSDKAuthorizationProviding protocol
    let authorizationProvider = AuthorizationProvider(userEmail: "sdk@servicenow.com", jwtProviderUrl: jwtUrl, clientId: "deb8756b452d201039231ca568f26511")
            
    // PermissionProvider – class conforming to DevicePermissionDelegate protocol
    let permissionProvider = PermissionProvider()
    let config = NowSDKConfiguration(authorizationProvider: authorizationProvider, permissionDelegate: permissionProvider, logLevel: .debug)
    	
    do {
      try NowSDK.configure(with: config)
      let chat = setup(with: instanceUrl)
    } catch {
      // Return ConfigurationError.sdkError(error)
    }
    …..
    
    func initializeChatService(with instanceURL: URL) -> AnyPublisher<NowService, ConfigurationError> {
      NowChat.makeChatService(instanceUrl: instanceURL, delegate: nil)
      .mapError { .sdkError($0) }
      .map { $0 as NowService }
      .eraseToAnyPublisher()
    }

    NowChat - makeChatService(instanceUrl: URL, delegate: NowChatServiceDelegate?, completion: @escaping ((Result<NowChatService, NowServiceError>) -> Void))

    지정된 구성으로 NowChatService 의 인스턴스를 만들고, 완료되면 지정된 완료 핸들러를 호출합니다.

    주:
    이 함수를 호출하기 전에 SDK를 초기화해야 하며, 그렇지 않으면 완료 블록이 sdkNotConfigured 오류와 함께 호출됩니다. SDK를 초기화하려면 원하는 구성으로 NowSDK.configure() 메서드를 호출합니다.
    표 3. 매개변수
    이름 유형 설명
    instanceUrl URL 채팅 서비스를 제공하는 인스턴스의 URL입니다 ServiceNow .
    위임 NowChatServiceDelegate 옵션입니다. NowChatServiceDelegate 프로토콜을 구현하는 대리자 객체입니다.
    완료 @escaping ((결과<NowChatService, NowServiceError>) -> 무효) 초기화된 NowChatService 인스턴스 또는 초기화에 실패한 이유를 나타내는 NowServiceError 를 포함하여 호출되는 완료 핸들러입니다.
    표 4. 반환
    유형 설명
    안 함

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

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