Webview不会显示带有颜色的文本

时间:2019-02-01 16:01:43

标签: android webview android-webview

在我的应用中,我在Webview中显示一些HTML内容:

String webViewConent = 'this is some <span style="color:#2ecc71">sample</span> string'
webView.loadData(omowienie, "text/html; charset=utf-8", "UTF-8");

但是,在上一次应用程序更新(与其他事情有关)之后,对于某些用户来说,Webview无法正常运行。他们只看到在span标签之前的字符串。该问题与任何特定的android版本无关。

7 个答案:

答案 0 :(得分:3)

这里有同样的问题,我发现base64编码可以作为快速解决方案:

String base64 = android.util.Base64.encodeToString(html.getBytes("UTF-8"), android.util.Base64.DEFAULT);
mWebView.loadData(base64, "text/html; charset=utf-8", "base64");

答案 1 :(得分:2)

我今天有同样的问题。作为一种简单的解决方法,我用RGB等效项替换了CSS中的十六进制颜色。

之前

<span style="color: #3050c0">Some text</span>

之后

<span style="color: rgb(48, 80, 192)">Some text</span>

答案 2 :(得分:0)

我有同样的问题。我的应用程序不会显示span标签后的文本。某些设备可以正常工作,但是某些设备不能工作。已投票!

<p><span style="color:#0000CD"><strong>Materials:</strong></span></p>

经过研究和实验,我已禁用设备上的Android System Webview应用程序。作为这个过程的结果是,我的应用程序工作正常。但是,对我来说,这绝不是一个解决方案。你有什么想法?

答案 3 :(得分:0)

我认为问题是Android Webview System中的新更新。旧版本适合我。

我这里的替代解决方案是卸载手机中的Android Webview System,以便您可以使用默认版本(如果您的应用程序已上传到Google Playstore中并且有很多用户,则此解决方案不理想)

第二个选项是您可以同时删除html中的颜色和背景颜色代码,并且它可以正常工作(我认为这是Android Webview系统的错误,我们只需要等待它们解决问题即可)

答案 4 :(得分:0)

我有同样的问题。可能是Android WebView系统的错误,但是解决方案是使用字体标签为文本着色。

String webViewConent = "this is some <font style="color:green">sample</font> string";

注意:此代码不适用于十六进制格式的颜色

答案 5 :(得分:0)

我没有找到修复程序,但是我能够围绕原始HTML更改字符串。只要您已经知道将要显示的颜色,这就会对其他人有所帮助:

String newString = originalString.replaceAll("color:#888888", "color:gray");

答案 6 :(得分:0)

我发现this answer中有关WebView编码的方法似乎可以解决此问题。尝试使用loadData,而不要使用loadDataWithBaseURL

webview.loadDataWithBaseURL(null, html, "text/html; charset=utf-8", "utf8", null)