【问题标题】:how to show img tags in a webview?如何在 webview 中显示 img 标签?
【发布时间】:2018-01-04 14:08:35
【问题描述】:

我正在从服务器及其带有 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);

我成功地在 web 视图中显示了内容,但是没有 span 并且图像 url 没有加载? 这是为什么 ?

有人可以给我看一个我在这里缺少什么的例子吗?

【问题讨论】:

    标签: android html webview android-webview webviewclient


    【解决方案1】:

    尝试用 chrome 调试你的 webview:

    1. webview.setWebContentsDebuggingEnabled(true);

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

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

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

    5. 你现在可以用chrome调试你的html代码了!

    【讨论】:

    • 谢谢你,我做了这个,我发现没有 img 标签,似乎 sb.append(Html.fromHtml((String) article.getMain()).toString())删除标签 img .. 请参阅下面的我自己的答案,了解我所做的:)
    【解决方案2】:

    我解决了,代码如下:

        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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2015-09-30
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 2018-05-11
      • 2021-11-30
      相关资源
      最近更新 更多