如何在Flutter中生成文本HTML?解决flutter_quill无法传输HTML至API的问题
解决flutter_quill 6.1.7无法发送HTML文本到API的问题
flutter_quill默认存储的是Delta格式内容,并非直接的HTML,所以得先把Delta转换为HTML字符串,再发送给API,给你两种可行方案:
方案一:使用第三方转换包
- 在
pubspec.yaml中添加依赖:
dependencies: flutter_quill: ^6.1.7 quill_html_converter: ^1.2.0 # 选择适配flutter_quill 6.x的版本即可
- 获取控制器的Delta内容并转换为HTML:
// 假设你的Quill控制器实例为_quillController final delta = _quillController.document.toDelta(); final htmlContent = deltaToHtml(delta);
- 将转换后的HTML内容作为请求体发送到API:
// 以http包为例的API请求示例 final response = await http.post( Uri.parse('你的API接口地址'), body: {'content': htmlContent}, headers: {'Content-Type': 'application/x-www-form-urlencoded'}, );
方案二:使用flutter_quill自带的转换工具
无需额外引入包,直接用框架内置的转换器:
import 'package:flutter_quill/flutter_quill.dart'; // 将Delta格式转换为HTML字符串 final htmlContent = QuillHtmlConverter.convertDeltaToHtml(_quillController.document.toDelta());
注意事项
- 转换完成后可以先打印HTML内容,确认
<h1>这类标签是否正常生成,避免格式错乱 - 提前和API端确认接收格式,比如是否需要转义特殊字符、支持哪些HTML标签类型
内容的提问来源于stack exchange,提问作者our world
相关产品推荐
相关产品推荐

