WKWebView内の外部リンク(target=”_blank”)を、SFSafariViewで開く方法を紹介

キュレーションアプリを製作中なのですが、WKWebView内で外部リンク(target=”_blank”)が開かない仕様の解消に苦労しました。

今回は、自分への備忘録も兼ねて、WKWebView内で外部リンクをSFSafariViewで開く方法を紹介します。

必要なモジュールをimportして、WKWebViewをセットする

WebKitとSafariServicesをimportし、WKUIDelegateを忘れないようにWKWebViewを描写します。

WKWebView内でタップされた外部リンクのURLを取得する

ViewController内に以下の記述を追加することによって、WKWebView内でタップされた外部リンクのURLを取得することができます。

取得したURLをSFSafariViewで描写する

先程のソースを、このように変更すると、SFSafariViewControllerをpresentして、SFSafariViewで外部リンクを描写することができます!

完成コード!

ご参考までに!!!!

ABOUTこの記事をかいた人

新卒ノマドエンジニアとして独立し、半年で月収100万円を達成する。フリーランスのエンジニアとして活動しながら、事務所を売却(バイアウト)したり、Youtuber(最高月間視聴回数109万回、チャンネル登録者1万人)をしたり、Openrecの公式配信者としてゲーム生実況をしたり、ベンチャー企業のCOOをしたり、パラレルキャリアを歩んでいる。 2019年にミニマムライフコストを不労所得で稼げるようになったため、いまは好きなことだけ仕事にしています。