我想加载一个静态HTML页面到web视图。加载静态HTML到Webview
当我改变它的内容,以它的工作原理简单的HTML页面。 所以我认为这个html文件有问题,但是在Mozilla和Chrome上可以正确查看文件。所以我的问题是
- 什么常见的html错误,android webview不通过。
- 如果html文件有问题,那它是什么。
HTML文件 http://snipt.org/vagL9
截图
我想加载一个静态HTML页面到web视图。加载静态HTML到Webview
当我改变它的内容,以它的工作原理简单的HTML页面。 所以我认为这个html文件有问题,但是在Mozilla和Chrome上可以正确查看文件。所以我的问题是
HTML文件 http://snipt.org/vagL9
截图
这是一个SDK错误 的loadData(字符串,...,...)方法可转换字符串的内容转换成一个URI,并且使得我的代码包含了需要编码的字符一样%它截断了导致错误的代码。 从而发现这里的解决方案是这些字符转换为Unicode,因为这代码
public final static void webViewLoadData(WebView web, String html) {
StringBuilder buf = new StringBuilder(html.length());
for (char c : html.toCharArray()) {
switch (c) {
case '#': buf.append("%23"); break;
case '%': buf.append("%25"); break;
case '\'': buf.append("%27"); break;
case '?': buf.append("%3f"); break;
default:
buf.append(c); break;
}
}
web.loadData(buf.toString(), "text/html", "utf-8");
}
我已经放在提供HTML文件,以资产文件夹名称snipt.html
。此代码正确显示它。
final WebView webView = (WebView) findViewById(R.id.webview);
final WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/snipt.html");
我做到了,并没有奏效。 我不直接加载文件我加载完整的文件作为一个DOM并修改它的元素,然后得到HTML回来。 但是,当我从文件中删除'%'字符,它工作得很好! –
我面临同样的问题。
通过应用下面
WebView webView = (WebView) findViewById(R.id.webView1);
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(location);
HttpResponse response = httpClient.execute(httpGet);
String data = new BasicResponseHandler().handleResponse(response);
String base64 = android.util.Base64.encodeToString(data.getBytes("UTF-8"), android.util.Base64.DEFAULT);
webView.loadData(base64, "text/html; charset=utf-8", "base64");
代码解决了这个这将解决所有问题的WebView从Android 1.5以上版本
呈现一定会为你工作!
你可以发布你用来加载html到WebView的代码吗? – FoamyGuy
我已经列入它的问题 HTML文件http://snipt.org/vagL9 –
是HTML代码。我正在讨论将您的html文件加载到WebView中的java代码。 – FoamyGuy