NowWebService 클래스 - iOS

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기4분
  • NowWebService 클래스는 인스턴스에서 웹 페이지를 ServiceNow 찾아볼 수 있도록 하는 함수를 제공합니다.

    표 1. 속성
    이름 유형 설명
    구성 NowService구성 NowWebService 인스턴스를 초기화할 때 사용할 구성 매개변수입니다.

    NowWebService - init(configuration: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProviding? = nil)

    NowWebService 인스턴스를 초기화합니다.

    표 2. 매개변수
    이름 유형 설명
    구성 NowService구성 NowWebService 인스턴스를 초기화할 때 사용할 구성 매개변수입니다.
    코어서비스제공자 NowCoreService제공 옵션입니다. NowWebService 인스턴스와 연결할 서비스 공급자입니다.

    기본값: nil

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

    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 webService = NowWebService(configuration: serviceConfig, coreServiceProvider: coreService)

    NowWebService - makeWebViewController(url: URL, 대리자: NowWebViewControllerDelegate, 테마: NowWebThemeable)

    웹 뷰를 호스팅하는 UIViewController 개체를 만듭니다.

    표 3. 매개변수
    이름 유형 설명
    URL용 URL 로드할 웹 페이지의 URL입니다. 이 웹 페이지는 서비스가 초기화된 대상 ServiceNow 인스턴스에 있어야 합니다.
    위임 NowWebViewControllerDelegate 옵션입니다. WebViewController에서 네이티브 애플리케이션으로 콜백 이벤트를 수신하는 객체입니다.
    테마 NowWebThemeable 옵션입니다. NowUIThemeable view 컨트롤러의 UI 요소(예: color)에 적용할 프로토콜입니다.

    기본값: NowWebDefaultTheme(nowUITheme: NowUIDefaultTheme())

    표 4. 반환
    유형 설명
    결과<NowWebViewController, NowWebServiceError> 성공: NowWebViewController 개체

    실패: NowWebServiceError 개체

    private func webViewController(for url: URL) -> NowWebViewController? {
      guard let webService = webService else {
        debugPrint("Web service not initialized")
        return nil
      }
            
      let result = webService.makeWebViewController(for: url, delegate: self, theme: CarrascoWebTheme(nowUITheme: CarrascoTheme()))
      switch result {
        case .success(let viewController):
          return viewController
        case .failure(let error):
          debugPrint("Web view creation failed with error: \(error.localizedDescription)")
      }
      return nil
    }

    NowWebService - preloadWebCache(urls: [URL], completion: PreloadWebCacheCompletion? = nil)가 발생합니다.

    초기 로드 시간을 개선하기 위해 백그라운드에서 캐시 가능한 자원이 있는 지정된 페이지 목록을 미리 로드하여(NowWeb에 의해) 미리 로드합니다.

    표 5. 매개변수
    이름 유형 설명
    URL URL 객체의 배열 미리 로드할 페이지의 URL입니다.
    완료 PreloadWebCacheCompletion 옵션입니다. 웹 페이지 로드가 완료되었음을 호출자에게 알리기 위한 종결입니다.
    표 6. 반환
    유형 설명
    없음

    다음 예제에서는 webService.preloadWebCache() 함수를 사용하여 지정된 페이지를 미리 로드하는 방법을 보여 줍니다.

    private func preloadURLs(urls: [URL]) {
      guard let webService = webService else {
        debugPrint("Web service not initialized")
        return
      }
      do {
           try webService.preloadWebCache(urls: urls) {
             debugPrint("URLs did complete preloading")
           }
                
      } catch {
          debugPrint(error.localizedDescription)
      }
    }