NowWebViewControllerDelegate 프로토콜 - iOS
NowWebViewControllerDelegate 프로토콜은 흐름이 종료되거나 탐색이 실패하는 경우와 같이 NowWebViewController 처리 내의 문제를 알리기 위한 콜백을 제공합니다.
NowWebViewControllerDelegate - nowWebViewController(_ nowWebViewController: NowWebViewController, didEndFlow flowName: String)
지정된 Cabrillo(모바일 웹) 플로우가 종료되었음을 호스트 애플리케이션에 알리는 콜백입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| nowWebView컨트롤러 | NowWebView컨트롤러 | 흐름이 종료된 NowWebViewController 인스턴스입니다. |
| didEndFlow 플로우 이름 | 문자열 | 종료된 Cabrillo 플로우의 이름 |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
func nowWebViewController(_ nowWebViewController: NowWebViewController, didEndFlow flowName: String) {
debugPrint("ended flow named: \(flowName)")
}
NowWebViewControllerDelegate - nowWebViewController(_ nowWebViewController: NowWebViewController, didFailNavigationWith error: Swift.Error)
호스트 애플리케이션에 웹 뷰 탐색이 실패했음을 알리는 콜백입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| nowWebView컨트롤러 | NowWebView컨트롤러 | 탐색이 실패한 NowWebViewController 인스턴스입니다. |
| didFailNavigation오류 포함 | Swift.Error | 탐색 실패로 인해 발생한 오류입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
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입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| nowWebView컨트롤러 | NowWebView컨트롤러 | 지원되지 않는 URL을 로드하려고 할 때 사용되는 NowWebViewController 인스턴스입니다. |
| didReceive unsupportedUrl | URL | 잘못된 URL을 로드하려고 합니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
func nowWebViewController(_ nowWebViewController: NowWebViewController, didReceive unsupportedUrl: URL) {
debugPrint("nowWebViewController:receivedUnsupportedUrl: \(unsupportedUrl.absoluteString)")
}
NowWebViewControllerDelegate - nowWebViewControllerDidRequestDismissal(_ nowWebViewController: NowWebViewController)
뒤로 탐색을 시도하는 동안 스택이 소진되었음을 호스트 애플리케이션에 알리는 콜백입니다. 그런 다음 호스트 애플리케이션은 NowWebViewController 인스턴스를 해제할지 여부를 결정할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| nowWebView컨트롤러 | NowWebView컨트롤러 | 뒤로 탐색을 시도한 NowWebViewController 인스턴스입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
func nowWebViewControllerDidRequestDismissal(_ nowWebViewController: NowWebViewController) {
navigationController?.popViewController(animated: true)
}
NowWebViewControllerDelegate - nowWebViewController(_ nowWebViewController: NowWebViewController, systemThemeDidChange traitCollection: UITraitCollection)
호스트 애플리케이션에 시스템 웹 UI 테마가 변경되었음을 알리는 콜백입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| nowWebView컨트롤러 | NowWebView컨트롤러 | 웹 UI 테마가 변경된 NowWebViewController 인스턴스입니다. |
| 트레이트컬렉션 | UITrait컬렉션 | UITraitCollection 새 테마가 포함된 개체입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 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)
}