Flutter中基于Quill开发的文本编辑器应用如何存储段落数据?
Flutter Quill 富文本内容存储方案解答
Quill 包自身存储能力说明
flutter_quill 本身仅作为富文本编辑的UI组件,不自带任何持久化存储能力。它编辑完成的内容会以Delta格式的结构化数据输出,Delta本身为标准JSON结构,序列化后可兼容不同端的存储、读取场景,你需要自行对该数据做序列化后对接存储方案。
可选存储方案
本地端存储(仅存在用户设备本地)
- 小体量单文档存储可以用
shared_preferences包:将Delta数据通过jsonEncode(quillController.document.toDelta().toJson())序列化为字符串后直接存入,读取时反序列化为Delta对象再传入控制器即可恢复编辑内容。 - 多文档/大体积内容(含嵌入图片、音频等资源)可以用
path_provider+ 本地文件存储:将序列化后的Delta数据写入本地沙箱的JSON文件,关联的媒体资源也同步存在本地沙箱对应目录中即可。 - 有文档分类、搜索、批量管理需求的可以用
sqflite本地SQLite数据库:将Delta序列化字符串、文档标题、创建时间、修改时间等字段共同存入数据表,方便批量查询管理。
云存储(支持多设备同步)
上述本地存储包本身不提供云存储能力,需要云存储时你可以将序列化后的Delta字符串,以及富文本中关联的媒体资源,自行上传到自己的服务端接口,或者对接第三方BaaS服务的存储接口即可,云侧只需要按普通字符串/文件存储规则处理即可,不需要做特殊适配。
内容的提问来源于stack exchange,提问作者jasmine
相关产品推荐
相关产品推荐

