国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

詳解Android WebView加載html片段

2019-10-22 18:29:00
字體:
來源:轉載
供稿:網友

這里我先簡單描述一下需求:服務器返回的是html頁面的一部分帶有標簽的內容。

解決的思路是:將服務器返回的內容片段拼湊成一個完整的頁面。

下面直接上核心代碼:

這里是WebView一些配置

WebSettings settings = webView.getSettings();settings.setJavaScriptEnabled(true);settings.setDomStorageEnabled(true);settings.setUseWideViewPort(true);settings.setLoadWithOverviewMode(true);webView.setWebViewClient(new MyWebViewClient(activity));if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {      settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING);} else { settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);}webView.loadData(getHtmlData(item.content), "text/html;charset=utf-8","utf-8");private String getHtmlData(String bodyHTML) {    String head = "<head>" +        "<meta name=/"viewport/" content=/"width=device-width, initial-scale=1.0, user-scalable=no/"> " +        "<style>html{padding:15px;} body{word-wrap:break-word;font-size:13px;padding:0px;margin:0px} p{padding:0px;margin:0px;font-size:13px;color:#222222;line-height:1.3;} img{padding:0px,margin:0px;max-width:100%; width:auto; height:auto;}</style>" +        "</head>";    return "<html>" + head + "<body>" + bodyHTML + "</body></html>";  }static class MyWebViewClient extends WebViewClient{    private WaitingDialog dialog;    private Activity activity;    public MyWebViewClient(Activity activity){      dialog = new WaitingDialog(activity);      this.activity = activity;    }    @Override    public boolean shouldOverrideUrlLoading(WebView view, String url) {      LogUtil.e(url);      view.loadUrl(url);      return true;    }    @Override    public void onPageStarted(WebView view, String url, Bitmap favicon) {      super.onPageStarted(view, url, favicon);      if(!activity.isFinishing()) dialog.show();    }    @Override    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {      handler.proceed();      super.onReceivedSslError(view, handler, error);    }    @Override    public void onPageFinished(WebView view, String url) {      super.onPageFinished(view, url);      if(!activity.isFinishing()) dialog.dismiss();    }

筆者在Nexus6 7.0上面測試偶爾出現,html內容無法加載出來,顯示一片空白,開啟硬件加速后完美解決。

在上面WebView設置的部分加上如下代碼

if (webView.isHardwareAccelerated()) settings.setJavaScriptEnabled(true);

怎么樣簡單吧,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深水埗区| 湘潭县| 唐海县| 永川市| 肥东县| 抚远县| 股票| 泉州市| 土默特左旗| 梧州市| 得荣县| 曲麻莱县| 文化| 肃南| 韶关市| 双鸭山市| 大同县| 安西县| 余庆县| 扬中市| 墨玉县| 沧源| 锡林郭勒盟| 黄平县| 威远县| 云南省| 邵阳市| 阿城市| 姜堰市| 山西省| 刚察县| 大足县| 偏关县| 浑源县| 宜城市| 塔城市| 奈曼旗| 木兰县| 论坛| 石泉县| 邻水|