下記ブログの転載です!
https://rc-code.info/ios/post-241/
iOSにて、Webページを表示する必要があったので、WKWebView の基本的な使い方を備忘録。
WKWebView の使い方
WKWebView の基本的な使い方です。
下記が公式のサンプルコードです。
WKWebView を利用する際は UIKit と WebKit を import します。
WKWebView の initialize は CGRect と WKWebViewConfiguration を引数にとります。
該当するURLページを開くには、WKWebView の load関数 を実行します。
import UIKit
// 1 WebKit の import
import WebKit
class ViewController: UIViewController {
var webView: WKWebView!
override func loadView() {
// 2 WKWebViewConfiguration の生成
let webConfiguration = WKWebViewConfiguration()
// 3 WKWebView に Configuration を引き渡し initialize
webView = WKWebView(frame: .zero, configuration: webConfiguration)
// 4 WKUIDelegate の移譲先として self を登録
webView.uiDelegate = self
// 5 WKNavigationDelegate の移譲先として self を登録
webView.navigationDelegate = self
// 6 view に webView を割り当て
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
// 7 URLオブジェクトを生成
let myURL = URL(string:"https://www.apple.com")
// 8 URLRequestオブジェクトを生成
let myRequest = URLRequest(url: myURL!)
// 9 URLを WebView にロード
webView.load(myRequest)
}
}
// MARK: - 10 WKWebView ui delegate
extension ViewController: WKUIDelegate {
// delegate
}
// MARK: - 11 WKWebView WKNavigation delegate
extension ViewController: WKNavigationDelegate {
// delegate
}
1 WebKit の import
WebView関連のコードを扱うには**WebKitをimport**する必要があります。
冒頭にimport WebKitを記載すると、XcodeにてWebView関連の補完が効くようになるかと思います。
2 WKWebViewConfiguration の生成
WKWebViewConfigurationはWKWebViewの初期化時に参照される設定プロパティが含まれるクラスです。
WKWebViewConfigurationを使用すると、Webページがレンダリングされるまでの時間、メディア再生の処理方法、ユーザーが選択できるアイテムの細分性、およびその他の多くのオプションを決定できます。
WKWebViewConfigurationは、WKWebViewが最初に初期化されたときにのみ使用されます。このクラスを使用して、WKWebViewの作成後にその設定を変更することはできません。
3 WKWebView を initialize
WKWebViewの初期化にはframe引数にWebViewのサイズ、configuration引数に生成したWKWebViewConfigurationのインスタンスを引き渡します。
4 WKUIDelegate の移譲先として self を登録
WKWebViewの**uiDelegateプロパティにself**をセットする事で、インターフェースに関わるWebViewの関数をクラス内で扱う事ができるようになります。
5 WKNavigationDelegate の移譲先として self を登録
WKWebViewの**navigationDelegate**プロパティにselfをセットする事で、振る舞いに関わるWebViewの関数をクラス内で扱う事ができるようになります。
6 view に webView を割り当て
生成したWKWebViewのインスタンスをControllerのviewに割り当てます。
7 URLオブジェクトを生成
表示したいURLのStringをURLクラスのstring引数に指定し、インスタンスを生成します。
8 URLRequestオブジェクトを生成
生成したURLクラスのインスタンスをURLRequestクラスのurl引数に指定し、インスタンス生成します。
9 URLを WebView にロード
WKWebViewのload関数にURLRequestインスタンスを引き渡し、実行します。
この関数を叩くことで、webViewのリクエストが走ります。
10 WKWebView ui delegate
WKWebView ui delegate の部分には、WKWebViewのインターフェースに関わるdelegate関数を記述します。
詳細は公式ドキュメント参照。
11 WKWebView WKNavigation delegate
WKWebView WKNavigation delegate の部分には、WebViewの振る舞いに関わるdelegate関数を記述します。
詳細は公式ドキュメント参照。
実行環境
Mac: 10.13.6
XCode: 10.1
Swift: 4.2.1
参考ドキュメント
公式 WKWebView ドキュメント
公式 WKWebView ui delegate ドキュメント
公式 WKWebView WKNavigation delegate ドキュメント