NowWebViewControllerDelegate プロトコル:iOS
NowWebViewControllerDelegate プロトコルは、フローの終了時やナビゲーションの失敗時など、NowWebViewController 処理内の問題を通知するためのコールバックを提供します。
NowWebViewControllerDelegate - nowWebViewController(_ nowWebViewController: NowWebViewController, didEndFlow flowName: String)
指定された Cabrillo (モバイル Web) フローが終了したことをホストアプリケーションに通知するコールバック。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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)
Web ビューナビゲーションが失敗したことをホストアプリケーションに通知するコールバック。
| 名前 | タイプ | 説明 |
|---|---|---|
| nowWebViewコントローラー | NowWebViewコントローラー | ナビゲーションに失敗した NowWebViewController のインスタンス。 |
| didFailNavigationWith エラー | Swift.Error | ナビゲーションの失敗により発生したエラー。 |
| タイプ | 説明 |
|---|---|
| なし |
次のコード例は、このメソッドを呼び出す方法を示しています。
func nowWebViewController(_ nowWebViewController: NowWebViewController, didFailNavigationWith error: Error) {
debugPrint("NowWebViewController encountered a navigation error: \(error.localizedDescription)")
}
NowWebViewControllerDelegate - nowWebViewController(_ nowWebViewController: NowWebViewController, didReceive unsupportedUrl: URL)
Web ビューがサポートされていない 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)
システム Web UI テーマが変更されたことをホストアプリケーションに通知するコールバック。
| 名前 | タイプ | 説明 |
|---|---|---|
| nowWebViewコントローラー | NowWebViewコントローラー | Web UI テーマが変更された NowWebViewController のインスタンス。 |
| traitCollection | UITraitCollection | 新しいテーマを含む 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)
}