【Swift UI】WKWebViewクラスでWebページを表示!WKNavigationDelegateの実装

この記事からわかること
- Swift UIでWebサイトをiOSアプリから開く方法
- WKWebViewクラスとは?
- WKNavigationDelegateなどのデリゲートの実装
index
[open]
\ アプリをリリースしました /
環境
- Xcode:16.0
- iOS:18.0
- Swift:5.9
- macOS:Sonoma 14.6.1
Swift UIではWebページを表示させるViewが無い
現在Swift UIのみを使用してWebページを表示させるViewが存在しない状況です。Swift UIで実装するにはUIKitのWKWebView
クラスやSFSafariViewController
をUIViewRepresentable
を使用して実装します。今回はWKWebView
クラスで実装していきます。
WKWebView
クラスとUIViewRepresentable
の詳細な使用方法は以下の記事を参考にしてください。
おすすめ記事
【Swift/UIKit】WKWebViewクラスの使い方!サイトをアプリから開く方法
Swift UIでWKWebViewを使用する
まずはWKWebViewをSwift UIで表示できるようにUIWebView
を定義していきます。ここでは
UI側は以下のようになります。
UIViewRepresentable
続いて接続エラーなどが起きた際にエラー内容を取得できるようにUIViewRepresentable
を準拠させていきたいと思います。準拠させるにはCoordinator
を使用します。デリゲートメソッドwebView(_:didFailProvisionalNavigation,withError)
でエラーを取得できるようになったりします。
最後にupdateUIView
内でnavigationDelegate
にCoordinatorをセットすれば完了です。
target="_blank"のリンクを開く方法
WKWebViewではデフォルトではtarget="_blank"
のリンクを開くことができません。開けるようにする方法は以下の記事を参考にしてください。
表示しているWebページのURLやタイトルなどを取得する方法
表示されているWebページのURLやタイトルなどを取得することも可能です。実装方法は以下の記事を参考にしてください。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。