AgentWeb url监听问题

AgentWeb是对WebView封装的比较不错的一个框架,一个简洁易用的 Android Web 库,具体使用大家可以点击后面的链接

AgentWeb

本篇文章,我主要记录一下部分机型在使用AgentWeb或者WebView使用拦截URL中拦截不到的问题

首先先说下WebView如果想拦截某个url的话需要重写shouldOverrideUrlLoading这个方法,这个大家都知道

.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Log.i("shouldOver", "###: "+url);
        if (url.contains("你的判断标准")) {
            WebActivity.this.finish();
            return false;
        }
        return super.shouldOverrideUrlLoading(view, url);
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        Log.i("shouldOver", "@@@ "+request.getUrl().toString());
        if (request.getUrl().toString().contains("你的判断标准")) {
            WebActivity.this.finish();
            return false;
        }
        return super.shouldOverrideUrlLoading(view, request);
    }
}

如上,拦截url有两个方法可以做到,那么这两个方法有什么区别呢?如何使用呢?

区别:注意红色字体部分和删除线部分,区别就在于使用版本不同,低版本已经废弃,但为了兼容还可以继续使用,而高版本(7.0以上)则需要使用最新的api,否则是监听不到url的

使用:建议在自己的项目中需要监听url时,为了兼容更多版本,两个方法都写上,写同一套业务逻辑即可

 

 

你可能感兴趣的:(android)