Gus*_*avo 5 android android-webview webviewclient
在Android SDK中23 onReceivedError(WebView view, int errorCode, String description, String failingUrl)已被弃用并替换为onReceivedError(WebView view, WebResourceRequest request, WebResourceError error)。但是根据文档:
请注意,与弃用的回调版本不同,新版本将针对任何资源(iframe,图片等)调用,而不仅仅是主页
我们有一个应用程序,在不赞成使用的onReceivedError方法中,有一个代码可以显示本机视图,而不是让用户在WebView中看到错误。
我们想onReceivedError用新方法代替不推荐使用的方法。但是我们不想在本机视图中显示任何资源的错误,而只显示主页。
我们如何在新onReceivedError的页面中识别出错误不是来自主页?
PS 1:我们宁愿没有像解决这个存储主网址,并检查它,失败的URL。
PS 2:如果解决方案是仅使用不推荐使用的方法,那么对于新的Android版本仍可以保证调用该方法?
WebResourceRequest有isForMainFrame()您的方案,其可从API版本21起动方式:
来源:https : //developer.android.com/reference/android/webkit/WebResourceRequest.html
您不必存储原始URL。您可以从WebView传递给onReceivedError方法的方法中获取它。它始终是用户看到的当前页面的完整URL。因此,您不必担心它们导航到其他页面。
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
if (request.getUrl().toString().equals(view.getUrl())) {
notifyError();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1162 次 |
| 最近记录: |