Android WebView 使用 loadData 无法渲染怎么办技术
对于在安卓上使用 WebView 渲染网页遇到的一些问题。
Android WebView 的 loadData方法注意事项 loadData() 中的 html data 中不能包含 '#', '%', '\', '?' 四中特殊字符,出现这种字符就会出现解析错误,显示找不到网页还有部分 html 代码。需要如何处理呢?我们需要用 UrlEncoder 编码为 %23, %25, %27, %3f 。 可以使用以下两种代码,data 为 string 类型的 html 代码 1 webView.loadData(URLEncoder.encode(data, "utf-8"), "text/html", "utf-8"); 这样一些背景效果什么的都不怎么好看了。不推荐。只显示文字,渲染百度首页,还出现很多 + 号 和文字。 2 webView.loadDataWithBaseURL(null,data, "text/html", "utf-8", null); 这样就会完美解析了。
最开始使用 loadData 方法的时候,因为没有认真想,你只要一想,就会发现问题,因为网页的渲染必须基于 域。如果没有 域 网页无法执行,所以会出现大量的不解析的问题。
所以,正确的方式肯定是 loadDataWithBaseURL。
暂无