一尘不染

使用自定义CSS在WebView中呈现HTML

html

我的应用程序正在使用JSoup下载留言板页面的HTML(在这种情况下,它是包含给定线程帖子的页面)。我想使用此HTML,去除不需要的项目,并应用自定义CSS对其进行样式设置使其在WebView中“可移动”。

我应该在处理样式时将样式注入HTML中(因为无论如何还是要处理样式),还是有一种很好的方法将CSS文件添加到我的应用程序资产中并简单地引用它。我认为后者将是理想的,但不确定如何实现。

我在WebView的loadDataWithBaseURL中看到了可以引用本地资产的提示,但不确定如何利用它。


阅读 247

收藏
2020-05-10

共1个答案

一尘不染

您可以使用WebView.loadDataWithBaseURL

htmlData = "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />" + htmlData;
// lets assume we have /assets/style.css file
webView.loadDataWithBaseURL("file:///android_asset/", htmlData, "text/html", "UTF-8", null);

并且只有在此之后,WebView才能够在assets目录中查找和使用css文件。

ps而且,是的,如果您从资产文件夹中加载html文件,则无需指定基本URL。

2020-05-10