视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用WebView加载HTML代码的方法详解
2020-11-27 15:34:23 责编:小采
文档


使用EditText显示HTML字符串时,EditText不会对HTML标签进行任何解析,而是直接把所有HTML标签都显示出来-----就像用普通记事本显示一样;如果应用程序想重新对HTML字符串进行解析、当成HTML页面来显示,也是可以的。

WebView提供的loadData(String data , String mimeType , String encoding)方法,该方法可用于加载并显示HTML代码,但在实际使用过程中,当它加载包含中文HTML内容时,WebView将会显示乱码。

WebView还提供了一个loadDataWithBaseURL(String baseUrl , String data , String mimeType , String encoding , String historyUrl)方法,该方法是loadData(String data , String mimeType , String encoding)方法的增强版,它不会产生乱码。

1、data:指定需要加载的HTML代码。

2、mimeType:指定HTML代码的MIME类型,对于HTML代码可指定为text/html。

3、encoding:指定HTML代码编码所用的字符集。比如指定为GBK。

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebView;
 
public class ViewHtml extends Activity {
  WebView show;
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_html);
    //获取程序中的WebView组件
    show = (WebView) findViewById(R.id.show);
    StringBuilder sb = new StringBuilder();
    //拼接一段HTML代码
    sb.append("<html>");
    sb.append("<head>");
    sb.append("<title>Our Love</title>");
    sb.append("</head>");
    sb.append("<body>");
    sb.append("<h2>Love<a href=\"http://love.shiningchen.cc\">"
            +"Shining</a></h2>");
    sb.append("</body>");
    sb.append("</html>");
    //使用简单的loadData方法会导致乱码,可能是Android API的Bug
    //show.loadData(sb.toString(), "text/html", "utf-8");
    //加载、并显示HTML代码
    show.loadDataWithBaseURL(null,sb.toString(), "text/html", "utf-8", null);
  }
}

下载本文
显示全文
专题