我正在开发一个我正在加载网址的解决方案。我需要获取Http Error,以便我可以重新加载url来创建一个新会话。
@Override
public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
super.onReceivedHttpError(view, request, errorResponse);
Toast.makeText(getActivity(), "Unexpected error occurred.Reload page again.", Toast.LENGTH_SHORT).show();
if(errorResponse.getStatusCode() == 401){
customWebView.loadUrl(url);
}
}
但上面代码的问题在于它可以在Marshmallow中运行。可以任何人建议我一个解决方案,我可以得到错误低于Android版本< 23?
答案 0 :(得分:1)
void onReceivedHttpError (WebView view,
WebResourceRequest request,
WebResourceResponse errorResponse)
通知主机应用程序在加载资源时已从服务器收到HTTP错误。
任何人都可以建议我一个解决方案,我可以在android下面得到错误 版本< 23
onReceivedHttpError
已在 API level 23
中添加。所以它不会在23以下工作。
尝试
.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
/*if(Build.VERSION.SDK_INT<23)
{
// You work
}*/
}
@Override
public void onReceivedHttpError(
WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
/*if(Build.VERSION.SDK_INT >= 23)
{
// Your Work
}*/
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler,
SslError error) {
}
});
<强> FYI
此方法在API级别23中已弃用。使用 onReceivedError(WebView,WebResourceRequest,WebResourceError) 代替。