当前位置: 首页 > 面试题库 >

WebView,将本地.CSS文件添加到HTML页面?

鄢禄
2023-03-14
问题内容

在android中,我使用WebView来显示我使用Apache的HttpClient从互联网上获取的网页的一部分。为了只包含我想要的html部分,我使用了Jsoup。

String htmlString = EntityUtils.toString(entity4); // full html as a string                                 
Document htmlDoc = Jsoup.parse(htmlString); // .. as a Jsoup Document
Elements tables = htmlDoc.getElementsByTag("table"); //important part

现在,我可以加载tables.toString()WebView并显示它。现在,我想将此页面链接到存储在我的Assets文件夹中的CSS文件。我知道我可以有类似的东西

<LINK href="styles/file.css" type="text/css" rel="stylesheet">

在我的html中,但是如何链接它,所以它使用了我本地存储的那个?

-–编辑—
我现在改为:

StringBuilder sb = new StringBuilder();
    sb.append("<HTML><HEAD><LINK href=\"file:///android_asset/htmlstyles_default.css\" type=\"text/css\" rel=\"stylesheet\"/></HEAD><body>");
    sb.append(tables.toString());
    sb.append("</body></HTML>");
    return sb.toString();

我不知何故没有将样式应用于页面。我使用的位置路径错误吗?请帮我 ..


问题答案:

SevaAlekseyev是正确的,您应该将CSS文件存储在assets文件夹中,但是按file:///android_asset/filename.cssURL
引用对我不起作用。

还有另一种解决方案:将CSS放在assets文件夹中,使用HTML进行操作,但是 通过相对路径引用CSS
,并通过loadDataWithBaseURL()方法将HTML加载到WebView

webView.loadDataWithBaseURL("file:///android_asset/", htmlString, "text/html", "utf-8", null);

例如,您有styles.css文件,将其放入assets文件夹,创建HTML并加载:

StringBuilder sb = new StringBuilder();
sb.append("<HTML><HEAD><LINK href=\"styles.css\" type=\"text/css\" rel=\"stylesheet\"/></HEAD><body>");
sb.append(tables.toString());
sb.append("</body></HTML>");
webView.loadDataWithBaseURL("file:///android_asset/", sb.toString(), "text/html", "utf-8", null);


 类似资料:
  • 我想把一个html文件加载到WebView中。 请注意,在so上有很多相关的问题,但它们都涉及从资产文件夹获取**.html*。 但是我想从本地文件夹加载html文件,比如“d://abc.html”,因为如果我的html大约是10MB,那么相应的apk大小也会增加到10MB。

  • 任务:我已经创建了一个片段抽屉,在这里我有textview,文本“MyName”就在我的图像下面,然后有nav_row项,所以我想做的是,当单击该文本时,它应该将活动从MainActivity切换到profileinfo,我创建了webview,它的活动profileinfo应该加载我的html文件...所以我做的是这里--> webview xml在这里--> profileinfo活动 这是我

  • 我正在尝试将此文件加载到我的webview中,但它没有加载 文件路径类似于 /数据/用户/0/com。xyzapp。应用程序/缓存/临时文件。docx//这是GetPathh 下面是我的代码 第一项活动:- 第二项活动:- 如果我使用Action\u view 我因为“E/UncaughtException:android”而崩溃。操作系统。FileUriExposedException:file

  • 问题内容: 我正在使用ejs在node.js(express)上工作,并且无法在其中包含.css文件。我分别尝试了与html- css二重奏相同的事情,并且效果很好…我如何在其中包含相同的内容我的.ejs文件。我的app.js因此: 和index.ejs文件: style.css文件: 问题答案: 您的问题实际上并非特定于ejs。 这里要注意的两件事 style.css 是一个外部css文件。因此

  • 我正在尝试使用WebView显示包含表的本地超文本标记语言文件。但是,当我使用WebView在线检查网站时,它运行良好,问题是当我尝试使用本地超文本标记语言文件时。 这是代码的webView部分: 我用一个在线主机测试了这个HTML文件,它工作得很好: