我需要知道这是怎么回事shouldinterceptrequest.我不知道如何创建和处理此方法来读取和替换CSS链接.谢谢!
MH.*_*MH. 64
嗯,简单的答案是,它的工作原理非常相似shouldOverrideUrlLoading(WebView view, String url),如图示的WebView教程.
为了帮助您入门,请参阅下面的代码.您只需覆盖shouldInterceptRequest(WebView view, String url)WebViewClient 的方法即可.显然你不必内联,但为了紧凑,这就是我所做的:
WebView webview = (WebView) findViewById(R.id.webview);
webview.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest (final WebView view, String url) {
if (url.contains(".css")) {
return getCssWebResourceResponseFromAsset();
} else {
return super.shouldInterceptRequest(view, url);
}
}
/**
* Return WebResourceResponse with CSS markup from a String.
*/
@SuppressWarnings("deprecation")
private WebResourceResponse getCssWebResourceResponseFromString() {
return getUtf8EncodedCssWebResourceResponse(new ByteArrayInputStream("body { background-color: #F781F3; }".getBytes()));
}
/**
* Return WebResourceResponse with CSS markup from an asset (e.g. "assets/style.css").
*/
private WebResourceResponse getCssWebResourceResponseFromAsset() {
try {
return getUtf8EncodedCssWebResourceResponse(getAssets().open("style.css"));
} catch (IOException e) {
return null;
}
}
/**
* Return WebResourceResponse with CSS markup from a raw resource (e.g. "raw/style.css").
*/
private WebResourceResponse getCssWebResourceResponseFromRawResource() {
return getUtf8EncodedCssWebResourceResponse(getResources().openRawResource(R.raw.style));
}
private WebResourceResponse getUtf8EncodedCssWebResourceResponse(InputStream data) {
return new WebResourceResponse("text/css", "UTF-8", data);
}
});
webview.loadUrl("http://stackoverflow.com");
Run Code Online (Sandbox Code Playgroud)
捕获css文件的加载并返回WebResourceResponse包含要加载的数据的文件.
请注意,此方法需要API级别11.
如果你想为Android 2.x做类似的事情,你可能想尝试使用前面提到的,shouldOverrideUrlLoading(WebView view, String url)以避免加载页面,手动获取,用你自己的css文件替换引用,最后调用loadData(String data, String mimeType, String encoding) (或loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl)) WebView,将操作的html内容作为字符串传递.
之前:
后:

| 归档时间: |
|
| 查看次数: |
60750 次 |
| 最近记录: |