UIWebViewでよく使うデリゲートメソッド一覧
webView(_:shouldStartLoadWith:navigationType:)
概要
ロードの開始前に呼ばれる
ロードするかどうか
false
を返すとロードしない
用途
特定のURLの場合にロードしないようにする、など
FooViewController.swift
import UIKit
final class FooViewController: UIViewController, UIWebViewDelegate {
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebView.NavigationType) -> Bool {
if let url = request.url?.absoluteString, url.lowercased() == "https://example.com".lowercased() {
return false
}
return true
}
}
webViewDidFinishLoad(_:)
概要
ロードの完了後に呼ばれる
用途
インジケータを消す場合、など
FooViewController.swift
import UIKit
final class FooViewController: UIViewController, UIWebViewDelegate {
@IBOutlet private weak var indicatorView: UIActivityIndicatorView!
func webViewDidFinishLoad(_ webView: UIWebView) {
self.indicatorView.stopAnimating()
}
}
webView(_:didFailLoadWithError:)
概要
ロード時にエラーが発生した場合に呼ばれる
用途
エラーハンドリング
インジケータを消す場合、など
FooViewController.swift
import UIKit
final class FooViewController: UIViewController, UIWebViewDelegate {
@IBOutlet private weak var indicatorView: UIActivityIndicatorView!
func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {
self.indicatorView.stopAnimating()
}
}