android中webview加载html,用本地的css渲染页面如何做

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中webview加载html,用本地的css渲染页面如何做相关的知识,希望对你有一定的参考价值。

android中webview加载html用本地css渲染的做法:
1:将资源拷贝到assets目录
2:给需要注入的资源文件在url上做一个标志,当然,你也可以不做,只要你在安卓端可以判断出来即可。
<link rel="stylesheet" href="[inject]public/css/bootstrap.min.css" type="text/css" media="screen" title="no title" charset="utf-8">
<link rel="stylesheet" href="[inject]public/css/bootstrap-theme.min.css" type="text/css" media="screen" title="no title" charset="utf-8">
<script type="text/javascript" src="[inject]public/js/zipto/1.1.6/zepto.min.js"></script>
<script type="text/javascript" src="[inject]public/js/modules/md5.min.js"></script>
3:拦截将要注入的文件,读取本地文件即可。

webview.setWebViewClient(new WebViewClient()
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url)
//System.out.println("WebResourceResponse::"+url);
if(url.contains("[inject]"))
String localPath = url.replaceFirst("^http.*inject\\]","");
System.out.println("LocalPath::"+localPath);
try
InputStream is = getApplicationContext().getAssets().open(localPath);
return new WebResourceResponse("text/javascript", "UTF-8", is);
catch (Exception e)
e.printStackTrace();
return super.shouldInterceptRequest(view, url);

else
return super.shouldInterceptRequest(view, url);


);
参考技术A 跟加载html 一样 ,<link rel="stylesheet" href="file:///android_asset/css.css" type="text/css" />
你的采纳是我前进的动力,
记得好评和采纳,答题不易,互相帮助,
手机提问的朋友在客户端右上角评价点(满意)即可.
如果你认可我的回答,请及时点击(采纳为满意回答)按钮!!

如何在 iOS 中将本地(文档目录)html 加载到 webview 中?

【中文标题】如何在 iOS 中将本地(文档目录)html 加载到 webview 中?【英文标题】:How to load local (Document directory) html into webview in iOS? 【发布时间】:2014-08-20 12:10:14 【问题描述】:

我想加载下载到文件夹中的 html 文件。第一页加载正常,但到第二页的链接不起作用,图像也不起作用。我正在使用此代码:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths objectAtIndex:0];
NSString *path = [documentDirectory stringByAppendingPathComponent:@"index.htm"];
NSString* htmlString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
[pruvodceWebView loadHTMLString:htmlString baseURL:nil];

有什么原因,为什么webview会这样做?谢谢你

【问题讨论】:

html文件不是iOS的问题。 【参考方案1】:

问题是您有 HTML 源代码但没有图像 而不是

[pruvodceWebView loadHTMLString:htmlString baseURL:nil];

您应该定义 baseURL。如果您的图像在文档目录中

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[pruvodceWebView loadHTMLString:htmlString baseURL:baseURL];

如果图片有相对路径,则提供图片路径

[pruvodceWebView loadHTMLString:htmlString baseURL:[NSURL URLWithString@"http://yourSiteHere.com/"]];

看看这个: Load resources from relative path using local html in uiwebview

【讨论】:

以上是关于android中webview加载html,用本地的css渲染页面如何做的主要内容,如果未能解决你的问题,请参考以下文章

怎么用WebView加载本地html

在 WebView 中加载页面之前,用本地 Android 资源替换 HTML 文档的图像

Android-WebView中加载本地html的方法

关于Android中WebView在加载网页的时候,怎样应用本地的CSS效果

android 中 webview 怎么用 localStorage

android webview怎么加载ionic的html5