我正在开发一个使用WebView渲染自定义html的应用程序。
但是当我调用
loadDAtaWithBaseURL(URL, "<html><h1>TEST</h1></html>", "text/html; charset=utf-8;", "utf-8", null);
它在Genymotion模拟器上显示html本身(而不是渲染后的结果)。
在我的HTC-one上,呈现出了渲染后的html。
每个结果如附图所示。
是否有人有同样的问题或解决方案? 谢谢。
我正在开发一个使用WebView渲染自定义html的应用程序。
但是当我调用
loadDAtaWithBaseURL(URL, "<html><h1>TEST</h1></html>", "text/html; charset=utf-8;", "utf-8", null);
它在Genymotion模拟器上显示html本身(而不是渲染后的结果)。
在我的HTC-one上,呈现出了渲染后的html。
每个结果如附图所示。
是否有人有同样的问题或解决方案? 谢谢。
Don't enter mimeType below KitKat.
fun getMimeType(): String? {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
"text/html; charset=utf-8"
} else {
null
}
}
loadDAtaWithBaseURL(URL, "<html><h1>TEST</h1></html>", getMimeType(), "utf-8", null);
Java:
if(Build.VERSION.SDK_INT < 21)
webView.loadDataWithBaseURL("about:blank","<html><h1>TEST</h1></html>","text/html", "UTF-8",null);
else
webView.loadDataWithBaseURL("about:blank","<html><h1>TEST</h1></html>","text/html; charset=utf-8", "UTF-8",null);
关于您提供的信息,我无法清楚地调试出问题,但是这是应该如何完成的,只需检查您是否遗漏了某些内容:
首先,在清单文件中的活动中添加此行:
使用以下代码加载数据:
public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl);
这样就完成了。
loadDataWithBaseURL(Url, data, "text/html", "UTF-8", historyUrl)
请注意
如果基本URL使用数据方案,则此方法等效于调用loadData(),并且historyUrl将被忽略,并且数据将被视为data: URL的一部分。 如果基本URL使用任何其他方案,则数据将作为纯字符串(即不是data URL的一部分)加载到WebView中,并且字符串中的任何URL编码实体都不会被解码。