下記ブログの転載です!
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 ドキュメント