webview加載優化

@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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章