WebView加载静态资源
private void fetchOfflineResources () {
AssetManager am = getAssets();
try {
String[] res = am.list("offline");
if (res != null) {
Collections.addAll(offlineResources, res);
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public WebResourceResponse shouldInterceptRequest (WebView view, String url) {
int lastSlash = url.lastIndexOf("/");
if (lastSlash != -1) {
String suffix = url.substring(lastSlash + 1);
if (offlineResources.contains(suffix)) {
String mimeType;
if (suffix.endsWith(".js")) {
mimeType = "application/x-javascript";
} else if (suffix.endsWith(".css")) {
mimeType = "text/css";
} else {
mimeType = "text/html";
}
try {
InputStream is = getAssets().open("offline/" + suffix);
return new WebResourceResponse(mimeType, "UTF-8", is);
} catch (IOException e) {
e.printStackTrace();
}
}
}
return super.shouldInterceptRequest(view, url);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest (WebView view, WebResourceRequest request) {
String url = request.getUrl().toString();
int lastSlash = url.lastIndexOf("/");
if (lastSlash != -1) {
String suffix = url.substring(lastSlash + 1);
if (offlineResources.contains(suffix)) {
String mimeType;
if (suffix.endsWith(".js")) {
mimeType = "application/x-javascript";
} else if (suffix.endsWith(".css")) {
mimeType = "text/css";
} else {
mimeType = "text/html";
}
try {
InputStream is = getAssets().open("offline/" + suffix);
return new WebResourceResponse(mimeType, "UTF-8", is);
} catch (IOException e) {
e.printStackTrace();
}
}
}
WebResourceResponse response = null;
response = super.shouldInterceptRequest(view, request);
return response;
}