Xamarin.Forms忽略Android的SSL错误(自签名)

时间:2019-04-30 19:28:07

标签: c# xamarin xamarin.forms xamarin.android android-webview

问题是带有自签名SSL证书的网址被Android上的WebView拒绝,导致白屏。

我知道这个问题answered.无效。您可以通过评论看到它不适用于其他许多人。 ServicePointManager适用于IOS并适用​​于Android编译,但回调永远不会在Android上引发,导致白色WebView

在Xamarin.Forms中,我有整页WebView

    <WebView x:Name="Browser" HeightRequest="1000" WidthRequest="1000"/>

在我的Android项目MainActivity.cs中,我尝试了不起作用的建议ServicePointManager。相反,我在OnCreate的{​​{1}}中添加了一个MainActivity.cs

AddInvalidWebClient

我的 private void AddInvalidWebClient() { WebView wb = new WebView(this); wb.SetWebViewClient(new InvalidWebViewClient()); wb.LoadUrl("https://invalidcertificate.com"); // Not required for Invalid certificate, but required for my site. WebSettings ws = wb.Settings; ws.JavaScriptEnabled = true; // Add our new wb. SetContentView(wb); } 非常基础。它继承了标准InvalidWebViewCient并抑制了SSL错误。

WebViewClient

在Android的 public class InvalidWebViewClient : WebViewClient { public override void OnReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.Proceed(); } } Xamarin.Forms上还有另一种/更好的方法来忽略SSL错误吗? WebView不起作用,并且添加了另外一个ServicePointManager在我的WebView中似乎对MainActivity.cs具有反作用(更不用说hacky了)。

P.S。我知道抑制所有SSL错误是不好的。一旦我确定有解决方案,我将以一种仅针对我的证书公共密钥抑制它们的方式构建。

0 个答案:

没有答案