IOS-DOC-001 新增 MaterialReaderView #18
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
当前 iOS 已有知识库、资料列表、知识点详情等页面,但缺少资料原文件阅读能力。用户上传资料后必须能查看原文件。
目标:新增 MaterialReaderView 作为统一资料阅读入口。
支持格式:Markdown(Rust 解析后渲染)、TXT(Rust 读取后渲染)、图片(原生预览)、PDF(PDFKit/QuickLook)、Word/Excel(QuickLook)、PPT(外部打开或提示暂不支持)
页面功能:展示文件标题、根据文件类型选择阅读方式、支持返回、支持更多操作入口、支持阅读位置记录、支持标记已读
非目标:不做 PDF 标注、不做 Office 内置高保真预览、不做 OCR、不做复杂富文本笔记
验收标准:从资料详情页可进入 MaterialReaderView、Markdown 可以阅读、PDF 可以打开、图片可以查看、Word/Excel 可用系统预览打开、不支持格式有明确提示
实现完成 (2026-06-02)
新增文件
Features/MaterialReader/MaterialReaderView.swift(~280 行)核心架构:
parseMarkdown/parseText/detectMaterialType/readImageMeta),状态机 loading/loaded/errorPreviewMode分发 4 种渲染路径nativeReader→ Markdown/TXT block 列表 或 图片预览platformPreview→ QuickLook sheet(PDF/Word/Excel)externalOpen→ ShareLink 外部打开(PPT)unsupported→ 提示不支持解析逻辑
read_image_metaPreviewMode映射由 Swift 侧 1:1 转换(MaterialType.preview_mode()mirror)Route
.materialReader(materialId:filePath:materialType:)待 Xcode 配置
使用前需要把以下文件加入 Xcode 项目:
bindings/ios/generated/zx_document.swift(生成的 Swift 类型)bindings/ios/ZxDocumentRuntime.xcframework(Rust 编译产物)