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この記事をかいた人

新卒でノマドワーカー(webデザイナー)として独立し、半年で月収100万円を達成する。その後、事務所を売却(バイアウト)したり、Youtuber(最高月間視聴回数109万回、チャンネル登録者1万人)をしたり、Openrecの公式配信者としてゲーム生実況をしたり、ベンチャー企業のCOOをしたり、パラレルキャリアを歩んできました。 2019年にミニマムライフコストを不労所得で稼げるようになったため、いまは、お金のことを考えずに、様々な企業でエンジニア修行をさせていただきながら、複数のメディアやアプリとweb制作事務所を運営しています。 趣味は株式投資(米国・日本株メイン)で、トレードを楽しむ日も多いです!