@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加載優化
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.