# 报告短片:下载到本地(产品说明) > 状态:**已实现**(微信小程序「保存视频」+ H5「下载短片」);App 内 WebView 仍为后续。 > 目标:宠主/店员在报告页将**已生成成功的回顾短片**保存到相册或系统下载目录,便于私发、二次剪辑或留存。 --- ## 与当前实现同步(工程 · 2026-04) | 端 | 入口文案 | 行为摘要 | |----|-----------|----------| | **微信小程序** | **「保存视频」**(仅 `highlight_video_status === done` 且有效 URL) | 用户点击 → `downloadFile` → `saveVideoToPhotosAlbum`;失败含域名未配置、权限引导;页内提示**右上角「···」转发本页**;分享小程序卡片仍用底部「转发给宠主」。 | | **H5 报告页** | **「下载短片」** | 优先 `fetch` 同源/CORS 视频为 Blob 触发浏览器下载;失败则**复制视频链接**并说明可在浏览器打开或右上角分享。 | **前置条件与验收**仍以下文 §2、§6 为准;若产品与研发口径冲突,以本表与 `reportView.vue` 实际交互为准。 --- ## 1. 是否要做 **建议做。** 成片的核心价值之一是**可带走、可转发**;仅在线播放而不提供「保存」,会削弱传播与留存,尤其在微信生态外分享、或用户希望「先存再发」时。 --- ## 2. 前置条件 - 仅当 **`highlight_video_status === done`** 且存在有效 **成片 URL** 时展示下载入口。 - **生成中 / 失败**:不展示下载;失败态沿用现有「重试生成」等能力,不误导为可下载。 --- ## 3. 端与能力差异 | 场景 | 常见实现要点 | 产品注意 | |------|----------------|----------| | **微信小程序内嵌报告页** | 使用 `video` 组件 + 用户触发后调 **`wx.downloadFile`** → **`wx.saveVideoToPhotosAlbum`**(或等价 API);需处理**相册权限**授权失败文案 | 必须**用户主动点击**(入口「保存视频」),符合平台规范;首次需说明用途 | | **H5 报告页** | 同源或可 CORS 的视频 URL:`fetch` blob 触发下载;跨域受限时可服务端 **`Content-Disposition`** 或代理(可选增强) | 若视频在**另一域名**(如 CDN/API 域名),需配置 **CORS** 等;失败时提供「复制链接到浏览器打开」类降级(已实现) | | **App 内 WebView** | 与容器约定是否允许下载/保存相册 | 暂无 App 时可标为后续 | **产品结论**:**小程序与 H5 均已按上表实现全量能力**(入口、loading、成功/失败反馈一致);两端差异仅来自平台能力(相册 vs 本机下载),不作为「一端全量、一端仅兜底」的阶段性策略。可选后续:独立下载接口、CDN 防盗链与签名 URL,由运维与研发按环境评估。 --- ## 4. 交互与文案 - **入口名称**:建议统一为 **「保存视频」** 或 **「下载短片」**(与「生成短片」区分)。 - **位置**:成片播放器旁或下方,与「分享」并列(若本期有分享能力)。 - **过程**:点击 → loading(短)→ 成功 toast「已保存到相册」/「已开始下载」;失败 toast **可理解原因**(权限拒绝 / 网络 / 格式不支持),不暴露技术栈。 - **权限**:小程序拒绝相册权限时,引导用户去设置页,**单次**即可,勿连环弹窗。 --- ## 5. 合规与品牌 - 视频内容为门店服务记录,下载行为视为用户**自行保存**;对外页已有隐私与转发提示的,与《产品改进建议》§八 一致即可。 - 若短片含水印/门店标识,下载文件与在线播放**一致**,无需单独说明。 --- ## 6. 验收标准(建议) 1. 成片成功状态下,用户可一键触发保存/下载,**无需**额外登录(与当前报告 token 访问策略一致)。 2. 保存成功后在系统相册(或浏览器下载目录)中**可找到**对应 mp4。 3. 权限拒绝、网络错误、资源 404 等均有明确提示,**不出现**白屏或无反馈。 4. 生成中、未生成、失败时**不出现**下载入口,或置灰并说明原因。 --- ## 7. 与仓库文档的关系 - 《产品设计文档》§5.5 H5 报告页「分享能力」可后续增补「保存视频」一条。 - 《本期主线-下一步产品优化点》中 **B. 成片** 的传播属性可与本说明交叉引用。 --- *实现细节(接口域名、小程序 downloadFile 合法域名、H5 跨域、视频格式)由运维与研发按环境配置;本文定产品与验收口径。*