在項目開發中經常會將比較大的js、圖片、css等放到app中,而html放服務器,這樣在使用時流量較少,加載也比都放服務器上快,其實方法也比較多,網上搜了很久都沒結果。
一種是獲取服務器返回的html內容后,直接處理返回的html,在引用js、圖片的地方替換其資源為本地的“file:///android_asset/”資源,這種方式我沒試。
另一種就是直接使用WebViewClient實現
1 webView.setWebViewClient(new WebViewClient(){ 2 @Override 3 public WebResourceResponse shouldInterceptRequest(WebView view, String url) { 4 WebResourceResponse response = null; 5 6 response = super.shouldInterceptRequest(view,url); 7 if (url.contains("m.css")){ 8 try { 9 response = new WebResourceResponse("text/css","UTF-8",getAssets().open("css/m.css")); 10 } catch (IOException e) { 11 e.printStackTrace(); 12 } 13 } 14 return response; 15 } 16 });
注意最好是使用if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)來區分下版本執行的代碼
