如何使用 Android Webview 检查链接是不是脱机或损坏?
Posted
技术标签:
【中文标题】如何使用 Android Webview 检查链接是不是脱机或损坏?【英文标题】:How to check if Link is offline or broken with Android Webview?如何使用 Android Webview 检查链接是否脱机或损坏? 【发布时间】:2016-01-25 13:26:41 【问题描述】:我使用 android Webview 来加载这样的 URL:
mWebView = (WebView)v.findViewById(R.id.webView);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setjavascriptEnabled(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.loadUrl("someUrl");
如何检测 webView 应该加载的链接是否离线或损坏?
【问题讨论】:
能发个例子吗? 我的ans更新了,检查一次。 【参考方案1】:是的,您可以在 WebViewClient 类中使用 onRecicedError()
检测 WebView 中的断开链接。
您必须为 WebViewClient 创建一个对象并实现 onRecicedError() 方法并在 WebView 中使用 setWebViewClient()
方法设置 WebViewClient 对象
例如:
webView.setWebViewClient(new WebViewClient()
@SuppressWarnings("deprecation")
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
if(errorCode == 404)
Log.d("Webview", "Invalid URL: "+url);
else if(errorCode == 500)
Log.d("Webview", "Internal Server error: "+url);
@TargetApi(android.os.Build.VERSION_CODES.M)
@Override
public void onReceivedError(WebView view, WebResourceRequest req, WebResourceError rerr)
// Redirect to deprecated method, so you can use it in all SDK versions
onReceivedError(view, rerr.getErrorCode(), rerr.getDescription().toString(), req.getUrl().toString());
);
【讨论】:
@confile 让我知道我的答案中的任何疑问。 如果是 404 之类的,我如何检查状态码? @confile 使用 onReciceive() 2nd Argument errorCode, 您能否将此添加到您的答案中。 @confile 更新了我的回答。检查它是否已解决,然后标记它已解决。以上是关于如何使用 Android Webview 检查链接是不是脱机或损坏?的主要内容,如果未能解决你的问题,请参考以下文章
检查 Android WebView 是不是正在使用触摸事件
如何在 Android WebView 中使用 HitTestResult 获取链接 URL,用于使用 Longclick 链接图像(而不是图像 URL)