gpt4 book ai didi

android - WebView : webpage not available but I load it from an html string

转载 作者:太空狗 更新时间:2023-10-29 16:06:45 24 4
gpt4 key购买 nike

我的html字符串是这样的:

<meta http-equiv=\"Content-Type\" content=\"text/html\"; charset=\"UTF-8\" />
<p style="text-align: justify;"> paragraph </p>
<p style="text-align: justify;"> another one with <strong> strong attr </p>
<p style="text-align: justify;"> in general p have <strong> strong</strong> and <em> em parts</em></p>

我加载了:

view.loadData(htmlString, "text/html", "UTF-8");

我有不同的 html 字符串,其中一些没问题,但其他的给我这个错误...问题出在哪里?

最佳答案

已解决,请为这个答案提供很多“帮助”,因为它确实是一个令人讨厌的 webview 错误,我认为我的回答会对你们有很大帮助!

如果您的 html 页面确实包含“%”、“\”或“#”字符之一,loadData() 方法将失败!!所以你必须手动替换这些字符,这是我的类(class):

public class BuglessWebView extends WebView{

public BuglessWebView(Context context) {
super(context);
}

public BuglessWebView(Context context,AttributeSet attributes){
super(context,attributes);
}

public BuglessWebView(Context context,AttributeSet attributes,int defStyles){
super(context,attributes,defStyles);
}

@Override
public void loadData(String data, String mimeType, String encoding) {

super.loadData(solveBug(data), mimeType, encoding);
}

private String solveBug(String data){
StringBuilder sb = new StringBuilder(data.length()+100);
char[] dataChars = data.toCharArray();

for(int i=0;i<dataChars.length;i++){
char ch = data.charAt(i);
switch(ch){
case '%':
sb.append("%25");
break;
case '\'':
sb.append("%27");
break;
case '#':
sb.append("%23");
break;
default:
sb.append(ch);
break;
}
}

return sb.toString();
}
}

这是关于谷歌代码的讨论链接:http://code.google.com/p/android/issues/detail?id=1733

关于android - WebView : webpage not available but I load it from an html string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12332929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com