亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解Android WebView加載html片段

發布時間:2020-09-24 07:20:02 來源:腳本之家 閱讀:189 作者:李moumou 欄目:移動開發

這里我先簡單描述一下需求:服務器返回的是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);

怎么樣簡單吧,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

韩城市| 阿克| 略阳县| 巴塘县| 信宜市| 大冶市| 肥西县| 房产| 武陟县| 盐山县| 武城县| 岚皋县| 长岭县| 图片| 应用必备| 白沙| 临桂县| 称多县| 双鸭山市| 江津市| 当阳市| 绿春县| 拉萨市| 瓦房店市| 汕头市| 开化县| 新闻| 商城县| 五大连池市| 星座| 福泉市| 景东| 连州市| 万全县| 江华| 洛隆县| 齐齐哈尔市| 山东| 德兴市| 普兰县| 北川|