Flutter webview_flutter打开https地址白屏(android篇)
控制台报错Failed to validate the certificate chain, error :java .security .cert. Cert Path Validator Exception: Trust anchor for certification path not found.在stackoverflow找到了解决办法1.找到Flutter的sdk目录下flutter\
控制台报错
Failed to validate the certificate chain, error : java . security . cert. Cert Path Validator Exception: Trust anchor for certification path not found.
有道翻译:验证证书链失败,错误:java。 安全。 cert. cert路径验证器异常:未找到证书路径的信任锚。
在stackoverflow找到了解决办法
1.找到Flutter sdk目录下webviewflutter文件夹(说明一下:我使用的webview是1.0.7版本,所以根据你使用的版本去切换路径)
flutter\.pub-cache\hosted\pub.flutter-io.cn\webview_flutter-1.0.7\android\src\main\java\io\flutter\plugins\webviewflutter
2.打开FlutterWebViewClient.java文件
并添加这一行
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
添加到 internalCreateWebViewClient 函数。完成后它应该是这样的
private WebViewClient internalCreateWebViewClient() {
return new WebViewClient() {
@TargetApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return FlutterWebViewClient.this.shouldOverrideUrlLoading(view, request);
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
@Override
public void onPageFinished(WebView view, String url) {
FlutterWebViewClient.this.onPageFinished(view, url);
}
};
}
3- 在最上面添加这些进口
import android.net.http.SslError;
import android.webkit.SslErrorHandler;
最后成功打开https页面
更多推荐
所有评论(0)