WKWebView/UIWebViewでウェブページが真っ白

スポンサーリンク

iOS9 から WKWebView/UIWebView でウェブページがロードされず、画面が真っ白になるという現象が起こりました。iOS 8 までは正常に動いていたのですけど。

これは、iOS 9 から導入された App Transport Security(ATS)という機能が原因だそうです。App Transport Security(ATS)有効時には、ATS のデフォルト設定では HTTP によるネットワーク通信が許可されず、HTTPS(SSL)による通信のみ許可されるらしい。App Transport Security(ATS)については、以下のページが詳しい。

[iOS 9] iOS 9 で追加された App Transport Security の概要 | Developers.IO

— 環境 —
iOS 9 以降

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

Info.plist に ATS 設定を追加する

とりあえず、いったん App Transport Security(ATS)を無効にするために、Info.plist に次のコードを追加しました。

ファイル全体としては、最後のところに追加して以下のように編集した。

一応これで無事に WebView でウェブページが表示されるようになりました。ただし、この方法はセキュリティ的には非推奨っぽい。

ATS 対象から除外するドメインを指定

次の例のように、いったん ATS を有効にしておいて、ATS の対象から除外するドメインを指定する、などの方法を取るほうが良さそうです。

この例の場合ですと、example.com だけは ATS の対象から除外して、他の全てのドメインに対しては ATS が有効になる。

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

Leave Your Message!