2016-10-11 5 views
0

自己署名されたウェブサイトへのアクセスを必要とするXamarinフォームアプリを作成します。
私が知っているこれを達成する唯一の方法は、各プラットフォーム用のカスタムWeb Viewレンダラーを作成することです。
Androidでは、これはWebViewClientのOnReceivedSslErrorをオーバーライドすることで実現できます。

問題はどうすればiOSでこれを達成できるのでしょうか?Xamarin.iOS WebViewRenderer自己署名証明書を許可する方法は?

私は、次のようなNSUrlRequestを上書きしようとしている:

public class MyUrlRequest : NSUrlRequest 
{ 
    public MyUrlRequest(NSUrl url) : base(url) 
    { 
    } 

    public MyUrlRequest(IntPtr p) : base(p) 
    { 
    } 

    [Export("allowsAnyHTTPSCertificateForHost:")] 
    public static bool Allow(string host) 
    { 
     return true; 
    } 

} 

そしてLoadRequestを使用してカスタム要求を呼び出しますが、まだ動作していないようです。

+0

自己署名されたWebサイトを表示するための[UIWebView](NSURLConnectionではなくプライベートAPIなし)の可能な複製 - 可能ですか?](http://stackoverflow.com/questions/11573164/uiwebview-to-view-self-signed-ウェブサイト - 非プライベート - api-not-nsurlconnection-i) – Cheesebaron

答えて

0

はあなたのInfo.plistファイルに次のコードを追加することができますiOSのに自己署名証明書を許可するには:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

か、各ドメインを指定することができます。

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>[ENTER YOUR BASE URL HERE]</key> 
     <dict> 
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
      <true/> 
      <key>NSIncludesSubdomains</key> 
      <true/> 
      <key>NSAllowsArbitraryLoads</key> 
      <true/> 
     </dict> 
    </dict> 
</dict> 

はこれを参照してください。詳細については、postを参照してください。

関連する問題