24
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Swift】WKWebViewの基本的な使い方

Posted at

下記ブログの転載です!
https://rc-code.info/ios/post-241/

iOSにて、Webページを表示する必要があったので、WKWebView の基本的な使い方を備忘録。
 

WKWebView の使い方

WKWebView の基本的な使い方です。
下記が公式のサンプルコードです。

WKWebView を利用する際は UIKitWebKit を import します。
WKWebView の initialize は CGRectWKWebViewConfiguration を引数にとります。
該当する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関連のコードを扱うには**WebKitimport**する必要があります。
冒頭にimport WebKitを記載すると、XcodeにてWebView関連の補完が効くようになるかと思います。

2 WKWebViewConfiguration の生成

WKWebViewConfigurationWKWebViewの初期化時に参照される設定プロパティが含まれるクラスです。
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 にロード

WKWebViewload関数に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 ドキュメント
 
 

24
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?