@Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { // 步骤1:判断拦截资源的条件,即判断url里的图片资源的文件名 if (url.contains("3.d52b9d76c46941919038.js")||url.contains("20.b7e931615e2f93316749.js")||url.contains("index.js")||url.contains("index.css")) { // 假设网页里该图片资源的地址为:http://abc.com/imgage/logo.gif // 图片的资源文件名为:logo.gif InputStream is = null; // 步骤2:创建一个输入流 try { if (url.contains("3.d52b9d76c46941919038.js")) { is =getApplicationContext().getAssets().open("js/3.d52b9d76c46941919038.js"); }else if (url.contains("20.b7e931615e2f93316749.js")) { is =getApplicationContext().getAssets().open("js/20.b7e931615e2f93316749.js"); }else if (url.contains("index.js")) { is =getApplicationContext().getAssets().open("js/index.js"); }else if (url.contains("index.css")) { is =getApplicationContext().getAssets().open("css/index.css"); } // 步骤3:获得需要替换的资源(存放在assets文件夹里) // a. 先在app/src/main下创建一个assets文件夹 // b. 在assets文件夹里再创建一个images文件夹 // c. 在images文件夹放上需要替换的资源(此处替换的是abc.png图片) } catch (Exception e) { e.printStackTrace(); } WebResourceResponse response; if (url.contains("index.css")) { response= new WebResourceResponse("text/css", "utf-8", is); }else{ response= new WebResourceResponse("application/x-javascript", "utf-8", is); } // 参数1:http请求里该图片的Content-Type,此处图片为image/png // 参数2:编码类型 // 参数3:存放着替换资源的输入流(上面创建的那个) return response; } return super.shouldInterceptRequest(view, url); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { if (request.getUrl().toString().contains("3.d52b9d76c46941919038.js")||request.getUrl().toString().contains("20.b7e931615e2f93316749.js")||request.getUrl().toString().contains("index.js")||request.getUrl().toString().contains("index.css")) { // 假设网页里该图片资源的地址为:http://abc.com/imgage/logo.gif // 图片的资源文件名为:logo.gif InputStream is = null; // 步骤2:创建一个输入流 try { if (request.getUrl().toString().contains("3.d52b9d76c46941919038.js")) { is =getApplicationContext().getAssets().open("js/3.d52b9d76c46941919038.js"); }else if (request.getUrl().toString().contains("20.b7e931615e2f93316749.js")) { is =getApplicationContext().getAssets().open("js/20.b7e931615e2f93316749.js"); }else if (request.getUrl().toString().contains("index.js")) { is =getApplicationContext().getAssets().open("js/index.js"); }else if (request.getUrl().toString().contains("index.css")) { is =getApplicationContext().getAssets().open("css/index.css"); } // 步骤3:获得需要替换的资源(存放在assets文件夹里) // a. 先在app/src/main下创建一个assets文件夹 // b. 在assets文件夹里再创建一个images文件夹 // c. 在images文件夹放上需要替换的资源(此处替换的是abc.png图片) } catch (Exception e) { e.printStackTrace(); } WebResourceResponse response; if (request.getUrl().toString().contains("index.css")) { response= new WebResourceResponse("text/css", "utf-8", is); }else{ response= new WebResourceResponse("application/x-javascript", "utf-8", is); } // 参数1:http请求里该图片的Content-Type,此处图片为image/png // 参数2:编码类型 // 参数3:存放着替换资源的输入流(上面创建的那个) return response; } return super.shouldInterceptRequest(view, request); }
webview加载优化
最新推荐文章于 2024-08-14 10:44:34 发布