Xamarin iOS で https でない Web ページを WebView で開く

シェアする

Xamarin を使用したアプリで自分のページを WebView を開こうとしたところ、以下のようなメッセージが出力され、Web ページを開く事ができなかった。

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.
Temporary exceptions can be configured via your app's Info.plist file.

どうやら iOS では ATS(App Transport Security) という仕組みにより http での通信はデフォルトではブロックされる仕様のようだ。

本来であればサーバを https 対応にするほうが良いのだろうけど、今すぐ https 対応にできないので、アプリ側で http でも通信できるように設定をしてみた。

幸い Xamarin のページに ATS の設定方法が記載されていたので、それを見ながら Info.plist を編集したところ、https でないページもアクセスできるようになった。

Xamarin の iOS 向けプロジェクトから Info.plist を開き、以下のような感じに設定する。

NSAppTransportSecurity - Dictionary
  NSExceptionDomains - Dictionary
    (ドメイン名) - Dictionary
      NSExceptionMinimumTLSVersion - string - TLSv1.0
      NSExceptionRequiresForwardSecrecy - Boolean - No
      NSExceptionAllowsInsecureHTTPLoads - Boolean - Yes
      NSIncludesSubdomains - Boolean - Yes

こうする事で指定したドメインだけを WebView で表示する事ができるようになる。

また、NSAppTransportSecurity 以下に NSAllowArbitraryLoadsInWebContent を追加し YES にするとドメイン関係なく WebView で https でないページも開く事ができるようだ。

Sponsored Link

シェアする

フォローする