NowWebViewControllerDelegate 프로토콜 - iOS

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 5분
  • NowWebViewControllerDelegate 프로토콜은 흐름이 종료되거나 탐색이 실패하는 경우와 같이 NowWebViewController 처리 내의 문제를 알리기 위한 콜백을 제공합니다.

    NowWebViewControllerDelegate - nowWebViewController(_ nowWebViewController: NowWebViewController, didEndFlow flowName: String)

    지정된 Cabrillo(모바일 웹) 플로우가 종료되었음을 호스트 애플리케이션에 알리는 콜백입니다.

    표 1. 매개변수
    이름 유형 설명
    nowWebView컨트롤러 NowWebView컨트롤러 흐름이 종료된 NowWebViewController 인스턴스입니다.
    didEndFlow 플로우 이름 문자열 종료된 Cabrillo 플로우의 이름
    표 2. 반환
    유형 설명
    없음

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

    func nowWebViewController(_ nowWebViewController: NowWebViewController, didEndFlow flowName: String) {
      debugPrint("ended flow named: \(flowName)")
    }

    NowWebViewControllerDelegate - nowWebViewController(_ nowWebViewController: NowWebViewController, didFailNavigationWith error: Swift.Error)

    호스트 애플리케이션에 웹 뷰 탐색이 실패했음을 알리는 콜백입니다.

    표 3. 매개변수
    이름 유형 설명
    nowWebView컨트롤러 NowWebView컨트롤러 탐색이 실패한 NowWebViewController 인스턴스입니다.
    didFailNavigation오류 포함 Swift.Error 탐색 실패로 인해 발생한 오류입니다.
    표 4. 반환
    유형 설명
    없음

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

    func nowWebViewController(_ nowWebViewController: NowWebViewController, didFailNavigationWith error: Error) {
      debugPrint("NowWebViewController encountered a navigation error: \(error.localizedDescription)")
    }

    NowWebViewControllerDelegate - nowWebViewController(_ nowWebViewController: NowWebViewController, didReceive unsupportedUrl: URL)

    웹 뷰에서 지원되지 않는 URL을 로드하려고 시도했음을 호스트 애플리케이션에 알리는 콜백입니다.

    지원되지 않는 URL은 다른 ServiceNow 인스턴스에 대한 URL이거나 스키마가 잘못된 절대 URL일 수 있습니다.
    주:
    유효한 체계는 http 및 https입니다.
    표 5. 매개변수
    이름 유형 설명
    nowWebView컨트롤러 NowWebView컨트롤러 지원되지 않는 URL을 로드하려고 할 때 사용되는 NowWebViewController 인스턴스입니다.
    didReceive unsupportedUrl URL 잘못된 URL을 로드하려고 합니다.
    표 6. 반환
    유형 설명
    없음

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

    func nowWebViewController(_ nowWebViewController: NowWebViewController, didReceive unsupportedUrl: URL) {
      debugPrint("nowWebViewController:receivedUnsupportedUrl: \(unsupportedUrl.absoluteString)")
    }

    NowWebViewControllerDelegate - nowWebViewControllerDidRequestDismissal(_ nowWebViewController: NowWebViewController)

    뒤로 탐색을 시도하는 동안 스택이 소진되었음을 호스트 애플리케이션에 알리는 콜백입니다. 그런 다음 호스트 애플리케이션은 NowWebViewController 인스턴스를 해제할지 여부를 결정할 수 있습니다.

    표 7. 매개변수
    이름 유형 설명
    nowWebView컨트롤러 NowWebView컨트롤러 뒤로 탐색을 시도한 NowWebViewController 인스턴스입니다.
    표 8. 반환
    유형 설명
    없음

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

    func nowWebViewControllerDidRequestDismissal(_ nowWebViewController: NowWebViewController) {
      navigationController?.popViewController(animated: true)
    }

    NowWebViewControllerDelegate - nowWebViewController(_ nowWebViewController: NowWebViewController, systemThemeDidChange traitCollection: UITraitCollection)

    호스트 애플리케이션에 시스템 웹 UI 테마가 변경되었음을 알리는 콜백입니다.

    표 9. 매개변수
    이름 유형 설명
    nowWebView컨트롤러 NowWebView컨트롤러 웹 UI 테마가 변경된 NowWebViewController 인스턴스입니다.
    트레이트컬렉션 UITrait컬렉션 UITraitCollection 새 테마가 포함된 개체입니다.
    표 10. 반환
    유형 설명
    없음

    다음 코드 예제에서는 systemThemeDidChange() 대리자 함수를 재정의하여 updateTheme() 함수를 호출하여 시스템 테마가 변경될 때 테마 변경 사항을 적용하는 방법을 보여 줍니다.

    func nowWebViewController(_ nowWebViewController: NowWebViewController, systemThemeDidChange traitCollection: UITraitCollection) {
    
      /// Called when the system changes between dark and light mode
    
        /// You can call the corresponding updateTheme() method here to change the UI theme based on System Theme
        nowWebViewController.updateTheme(themeColors: traitCollection.userInterfaceStyle == .dark ? DarkNowWebTheme() : LightNowWebTheme())
          print(“System Theme Did Change)
    }