在我的应用中,我在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版本无关。
答案 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)