【发布时间】:2023-04-02 21:37:01
【问题描述】:
在我的本地 PC 开发环境中,我有一个 dotnetcore 2.2 项目在端口 5000 作为 https 和 5001 作为 http 运行。我需要在我的开发环境中使用 https。 在我的电脑上,我可以通过https://localhost:5000/ 输入而不会出现任何错误(VS 安装本地 SSL 证书)。使用我的 PC IP https://192.168.0.2:5000 浏览器启动 SSL 证书错误(SSL 证书适用于 localhost)。 我正在为 Android(9.0API 级别 28)和 iOS 开发 Xamarin.Forms 4.5.0.396,并且我正在使用标准 WebView 控件。
在 Android 中,当我导航 (webView.Source) 到 http://192.168.0.2:5001 时,它可以工作,但是当我尝试 https://192.168.0.2:5000 时,webView 保持空白。没有例外,但已启动导航事件。 我尝试了几种方法,例如暴露在:
-
WebView with SSL Client Certificate on Android 4 ICS
public void onReceivedClientCertRequest(WebView view, ClientCertRequestHandler handler, String host_and_port)
ClientCertRequestHandler 未知且不知道要引用的程序集
- Xamarin Android error in (https, ssl, tls) 在这个问题中设置 network_security_config.xml 和其他内容对我不起作用。
另外,我知道这不是解决方案,但我实现了一个自定义渲染器 (https://docs.microsoft.com/es-es/xamarin/xamarin-forms/app-fundamentals/custom-renderer/hybridwebview) 来尝试覆盖 SSL 验证方法,但它不起作用。
有什么建议吗?
【问题讨论】:
-
请验证您的192.168.0.2:5000 是否在您本地网络中的浏览器上工作。要验证您的 Android 网络视图是否设置正确,请使用任何已知的 https 网址,例如 gmail.com 或 stackoverflow.com,并查看它是否适用于您的网络视图。这不是一个解决方案,但它会帮助你找到罪魁祸首。
-
我用 https://stackoverflow.com/ 进行了测试并且可以工作。我在 Android 浏览器 https://192.168.0.2:5000 中测试,浏览器显示 SLL 错误。在 WebView 中,屏幕保持空白,不显示 SSL 错误,并且正常触发 Navigated 事件。
-
你能判断相同的网址是否适用于 chrome 或 Android 设备中的任何其他浏览器吗?
-
正如我告诉@Piyush 在他的回答中我测试过的那样;“我用 https://stackoverflow.com/ 测试过并且可以工作。我在 Android 浏览器中测试过 https://192.168.0.2:5000 和浏览器显示 SLL 错误。在 WebView 中,屏幕保持空白,不显示 SSL 错误,并且正常触发 Navigated 事件。"
标签: android ssl xamarin.forms webview