WebView监听网页加载成功与失败

方法一:利用原生回调方法

private boolean isSuccess = false;
private boolean isError = false;

public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    if (!isError) {
        isSuccess = true;
        //回调成功后的相关操作
    }
    isError = false;
}

public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
    isError = true;
    isSuccess = false;
    //回调失败的相关操作
}

原理总结:在访问失败的时候会首先回调onReceivedError,然后再回调onPageFinished。

方法二:给url打tag

这个方法不是适用所有人的,我当时可以用到这样的思路,主要是业务中只需要判断第一次的网页是否加载成功,只要第一次加载成功后后面的都可以交给html页面来解决加载状态。而加载成功前后的url是不一样的,举个例子:
首先启动webview时用到的url是http://www.abcd.com/shop, 这个在第一次打开app之前肯定是保存在本地的,或者是从登陆页面获取的,而加载成功以后的首页面就会变成http://www.abcd.com/shop#home ,这样我们就可以通过onPageFinished方法中转入的url来判断是否是第一次加载成功后的页面了。

url.contains("#");
发布了122 篇原创文章 · 获赞 30 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qijingwang/article/details/102725055
今日推荐