WKWebViewでtarget=”_blank”のリンクを開く(Swift)

スポンサーリンク

iOS で WKWebView でウェブページを表示する画面を作成していたのですけど、ウェブページ側のリンクに target=”_blank” が設定されているとリンクが開けないという現象に遭遇しました。調べたところ、stackoverflow をはじめいくつか解決策の書いてあるページが見つかりました(末尾の参考リンク参照)。日本語の情報は少なかったですけど。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

— 環境 —
Xcode 6.3.2
Swift 1.2
iOS 8 以上

WKWebView を使って Swift でウェブページを表示させる方法は、以下のエントリー参照。
WKWebView(WebKit)とSwiftでウェブページを表示 | EasyRamble

WKUIDelegate を継承して webView() メソッド実装で解決

WKUIDelegate を継承して webView() メソッドを実装します。target=”_blank”(navigationAction.targetFrame が nil)の場合には、URL ロードのリクエストをもう一回行うようにする。

WebKitViewController.swift

WKUIDelegate を継承して、viewDidLoad() に self.webView!.UIDelegate = self を追加しました。後は、webView() を実装する。以上のコードで無事に、WKWebView 画面に表示したウェブページ内の target=”_blank” が設定したあるリンクを開けるようになった。

スポンサーリンク
 
スポンサーリンク

Leave Your Message!