gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:08:42 24 4
gpt4 key购买 nike

在 android 中,我使用 WebView 显示我使用 Apache 的 HttpClient 从 Internet 获取的网页的一部分。为了只从 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

现在我可以在 WebView 中加载 tables.toString() 并显示。现在,我想将存储在 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();

不知何故,我没有将样式应用于页面。是不是我用的定位路径不对?

最佳答案

Seva Alekseyev 是对的,您应该将 CSS 文件存储在 assets 文件夹中,但通过 file:///android_asset/filename.css 引用 URL 不起作用我。

还有另一种解决方案:将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);

附:多亏了 Peter Knego's answer,我才得到了这个解决方案。

关于android - WebView,将本地 .CSS 文件添加到 HTML 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com