91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

詳解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

宝兴县| 义马市| 瓦房店市| 饶阳县| 准格尔旗| 桐庐县| 石柱| 前郭尔| 绥江县| 那坡县| 阳信县| 开封市| 房产| 孝感市| 永仁县| 绍兴县| 周至县| 福鼎市| 建水县| 迁西县| 泸溪县| 刚察县| 青州市| 珠海市| 南宁市| 子洲县| 威信县| 丁青县| 宣威市| 广元市| 田阳县| 广东省| 新巴尔虎左旗| 剑川县| 浦城县| 太仓市| 泾川县| 靖西县| 司法| 平果县| 浦江县|