创建一个需要访问自签名网站的Xamarin表单应用。
我知道的唯一方法是为每个平台创建自定义Web视图渲染器。
在Android上,这可以通过覆盖WebViewClient中的OnReceivedSslError来完成。
问题是我们如何才能在iOS上实现这一点?
我已经尝试过覆盖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 :(得分:0)
要在 iOS 中允许自签名证书,您可以将以下代码添加到 Info.plist 文件中:
<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。