如何在webview中显示img标签?

时间:2018-01-04 14:08:35

标签: android html webview android-webview webviewclient

我从服务器及其带有spans和img标签的basiclay html conetnt接收数据。

这里是:

<p><em>בדיקה לא למחוק</em></p>

                                                                    <p>&nbsp;</p>

                                                                    <p><u>בדיקה לא למחוק</u></p>

                                                                    <p>&nbsp;</p>

                                                                    <p><strong>בדיקה לא למחוק</strong><img src="http://images1.ynet.co.il/PicServer5/2017/12/29/8247918/824791601000100980734no.jpg" /></p>

                                                                    <p>&nbsp;</p>

                                                                    <p>&nbsp;</p>

                                                                    <p>&nbsp;</p>

                                                                    <p>&nbsp;</p>

                                                                    <p><img src="https://images1.ynet.co.il/PicServer5/2017/12/29/8247918/824791601000100980734no.jpg" /></p>

                                                                    <p>&nbsp;</p>

为了在webview中加载数据我做了这个:

 mWebViewMainContent = view.findViewById(R.id.webview_article_content);
    WebSettings settings = mWebViewMainContent.getSettings();
    settings.setDefaultTextEncodingName("utf-8");

    StringBuilder sb = new StringBuilder();
    //// TODO: 28/12/2017 handle languages
    sb.append("<HTML dir=\"rtl\" ><HEAD><LINK href=\"theCss.css\" type=\"text/css\" rel=\"stylesheet\"/></HEAD><body style=\"direction:rtl ;\" > ");
    sb.append("<div  class=\"article-page\"><p>");
    sb.append(Html.fromHtml((String) article.getMain()).toString());
    sb.append("</p></div>");
    sb.append("</body></HTML>");

    mWebViewMainContent.loadDataWithBaseURL("file:///android_asset/", sb.toString(), "text/html", "utf-8", null);

我成功地在网页视图中显示内容,但没有跨度,图片网址没有加载? 这是为什么 ?

有人能告诉我一个我在这里失踪的例子吗?

2 个答案:

答案 0 :(得分:0)

尝试使用chrome调试您的webview:

  1. webview.setWebContentsDebuggingEnabled(真);

  2. 在您的计算机上使用网址:chrome://inspect/#devices打开Chrome

  3. 在您的设备上运行您的应用并打开包含您的WebView的活动

  4. 将您的设备连接到计算机

  5. 您现在可以使用chrome调试html代码!

答案 1 :(得分:0)

我解决了,这是代码:

    mWebViewMainContent = view.findViewById(R.id.webview_article_content);
    WebSettings settings = mWebViewMainContent.getSettings();
    settings.setDefaultTextEncodingName("utf-8");

    StringBuilder sb = new StringBuilder();
    //// TODO: 28/12/2017 handle languages
    sb.append("<HTML dir=\"rtl\" ><HEAD><LINK href=\"theCss.css\" type=\"text/css\" rel=\"stylesheet\"/></HEAD><body style=\"direction:rtl ;\" > ");
    sb.append(article.getMain());
    sb.append("</body></HTML>");

    mWebViewMainContent.setWebContentsDebuggingEnabled(true) ;
    mWebViewMainContent.loadDataWithBaseURL("file:///android_asset/" , "<style>img{display: inline;height: auto;max-width: 100%;}</style>"+ sb.toString(), "text/html", "utf-8", null);