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 次 |
最近记录: |