我正在制作一个应用程序,其中有一个片段内的网页视图!webview显示了一个https网站,它运行良好!但过了一段时间,当我使用应用程序时,它抛出了"err_SSL_VERSION_INTERFERENCE“。我可以恢复它的唯一方法是强制关闭应用程序并重新启动它。有没有办法处理这个异常并重新加载页面?
我在webview片段中使用的代码是:
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl(webUrl);
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
webview.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
progressBar.setVisibility(View.VISIBLE);
progressDialog.show();
if(newProgress==100){
progressBar.setVisibility(View.GONE);
progressDialog.dismiss();
}
super.onProgressChanged(view, newProgress);
}
});
}错误日志:
E/chromium: [ERROR:ssl_client_socket_impl.cc(947)] handshake failed; returned -1, SSL error code 1, net_error -101
D/NetworkSecurityConfig: No Network Security Config specified, using platform default任何帮助都将不胜感激!谢谢
发布于 2021-05-21 00:31:35
下面这段代码对我很有效。
val webView = view.findViewById<View>(R.id.webview_payment) as WebView
webView.isVerticalScrollBarEnabled = true;
webView.loadUrl(requireArguments().getString("redirect_url")!!)
val settings: WebSettings = webView.settings
settings.allowUniversalAccessFromFileURLs = true
settings.javaScriptEnabled = true
settings.javaScriptCanOpenWindowsAutomatically = true
settings.cacheMode = WebSettings.LOAD_NO_CACHE
settings.setAppCacheEnabled(false)
settings.domStorageEnabled = true
// webView.webViewClient = WebViewClient()
webView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
val url = request?.url.toString()
view?.loadUrl(url)
return super.shouldOverrideUrlLoading(view, request)
}
override fun onPageFinished(view: WebView?, url: String?) {
webView.visibility = View.VISIBLE
Log.e("CurrentUrl", "ur :" + url.toString())
super.onPageFinished(view, url)
}
override fun onReceivedError(
view: WebView,
request: WebResourceRequest,
error: WebResourceError
) {
super.onReceivedError(view, request, error)
}
}https://stackoverflow.com/questions/67623785
复制相似问题