You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter 3中使用flutter_html展示API返回HTML数据失败求助

问题描述

从API获取HTML格式响应,需在Flutter 3页面中展示,使用flutter_html: 3.0.0-alpha.5插件但数据无法显示。

API返回的HTML响应片段

"message":"<div class='border-bottom pb-1'>New Item Created By Haider</div><table class='table mt-1  border mb-0 table-hover  table-border bg-white table-sm table_format'>
                                    <tbody>
                                        <tr>
                                            <td class='font-small-1'>Name</td>
                                            <td class='font-small-1'>Test 4Yyyyy</td>
                                        </tr>
                                        <tr>
                                            <td class='font-small-1'>Email</td>
                   <td clas 

代码片段

child: Html(
  data: _List.message?.toString() ?? "",
  style: {
    "body": Style(
      color: AppColor.WHITE.withOpacity(0.8),
    ),
    'html': Style(textAlign: TextAlign.start,
        alignment: Alignment.bottomLeft),
    "td": Style(
      padding: EdgeInsets.only(
          left: 20, top: 2, bottom: 2),
      alignment: Alignment.topLeft,
      // margin: EdgeInsets.only(left: 10),
      // width: 156,
    ),
  },
),
解决思路
  • 修复HTML完整性:当前API返回的HTML片段不完整(末尾<td clas未闭合),残缺的HTML会导致渲染失败,需确保获取到完整、格式合规的HTML内容。
  • 处理转义字符:API返回内容包含&quot;转义符,需先将其解码为正常双引号,确保传递给Html组件的是纯HTML字符串。若API响应是JSON格式,解析时会自动处理转义;若为字符串形式,可通过replaceAll('&quot;', '')手动替换。
  • 排查样式冲突:当前设置body颜色为半透明白色,若页面背景为浅色,内容会因对比度不足无法查看。建议先移除自定义样式,用默认样式测试是否显示,再逐步调整样式参数。
  • 升级插件版本:3.0.0-alpha.5是测试版本,存在潜在bug。尝试升级到flutter_html的稳定版本,避免版本兼容性问题。
  • 确保组件有足够空间:若HTML内容较长,需将Html组件包裹在SingleChildScrollView或Expanded中,避免因父组件空间不足导致内容被截断或不显示。
  • 验证数据有效性:打印_List.message?.toString()的实际值,确认传递给Html的data参数不为空、是有效的HTML字符串,而非null或空值。

内容的提问来源于stack exchange,提问作者sonalika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 01:20:39