Android WebView WebResourceResponse 拦截js、css、png存储
//API 21之前使用 @Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { return addLocationAssets(url); } //API 21之后使用 @SuppressLint("NewApi") @Override public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { return addLocationAssets(request.getUrl().toString()); } //需要加载的本地js资源 String[] jsFileName = {"bootstrap.min.js", "common-1.0.js", "fastclick.js", "hua-1.0.js", "jquery-1.9.1.js", "juicer-min.js", "map_min.js", "map_webapi.js", "swiper.min.js", "viewpager.js"}; //需要加载的本地image资源 String[] imageFileName = {"i_bbtn_ico01.png", "i_bbtn_ico02.png", "i_bbtn_ico03.png", "i_bbtn_ico04.png", "i_bbtn_ico05.png", "i_tcdt_ico01.png", "i_tcdt_ico02.png", "i_tcsf_zwdd.png"}; //需要加载的本地css资源 String[] cssFileName = {"bootstrap.css", "css_h5.css", "public-1.1.css", "swiper.min.css"}; //后台Image路径 String imageUrl = "mtss/images/"; //后台js路径 String jsUrl = "mtss/myjs/"; //后台Css路径 String cssUrl = "mtss/mycss/"; private WebResourceResponse addLocationAssets(String webResourceUrl) { if (webResourceUrl.contains(UrlBuild.HEARD_URL)) { WebResourceResponse webResourceResponse = null; //加载图片 if (webResourceUrl.contains(imageUrl)) { //取本地JS文件 for (int i = 0; i < imageFileName.length; i++) { if (webResourceUrl.contains(imageFileName[i])) { webResourceResponse = addImageWebResource(imageFileName[i]); if (webResourceResponse != null) { Log.e("WebResourceRespons2rimg", imageFileName[i]); } break; } } } //加载js if (webResourceUrl.contains(jsUrl)) { //取本地JS文件 for (int i = 0; i < jsFileName.length; i++) { if (webResourceUrl.contains(jsFileName[i])) { webResourceResponse = addJsWebResource(jsFileName[i]); if (webResourceResponse != null) { Log.e("WebResourceRespons2rjs", jsFileName[i]); } break; } } } //加载css if (webResourceUrl.contains(cssUrl)) { //取本地JS文件 for (int i = 0; i < cssFileName.length; i++) { if (webResourceUrl.contains(cssFileName[i])) { webResourceResponse = addCssWebResource(cssFileName[i]); if (webResourceResponse != null) { Log.e("WebResourceRespons2rcss", cssFileName[i]); } break; } } } return webResourceResponse; } return null; } /** * @return 本地css */ private WebResourceResponse addCssWebResource(String cssName) { try { return new WebResourceResponse("text/css", "utf-8", getAssets().open("css/" + cssName)); } catch (IOException e) { e.printStackTrace(); } //需处理特殊情况 return null; } /** * @return 本地js */ private WebResourceResponse addJsWebResource(String jsName) { try { return new WebResourceResponse("application/x-javascript", "utf-8", getAssets().open("js/" + jsName)); } catch (IOException e) { e.printStackTrace(); } //需处理特殊情况 return null; } /** * @return 本地image */ private WebResourceResponse addImageWebResource(String imageName) { InputStream is = null; try { is = getApplicationContext().getAssets().open("images/" + imageName); } catch (IOException e) { e.printStackTrace(); return null; } return new WebResourceResponse("image/png", "utf-8", is); }