Repository navigation
dsh-kdocs-inside 0.4.0 — 双端适配
双端适配:同一份包,两种可行的「原版」
| Web(浏览器) | 桌面端(Electron,官方桌面应用 0.1.7-rc.2 实测) | |
|---|---|---|
| 面板 / 文件树 / 搜索 / 文本预览 / 引用 | ✅ 一致 | ✅ 一致 |
| 「原版」预览 | 内嵌金山文档在线编辑器(iframe,可读可编辑) | PDF 导出预览(只读,pdf.js 渲染,缩放 + 逐页) |
| 编辑 | 预览里直接编辑 | 「在金山文档打开」跳系统浏览器 |
为什么桌面端不是 iframe
桌面端的 iframe 读的是应用自己的 Chromium profile,与系统浏览器不共享登录态;实测金山授权接口在该嵌入上下文恒定拒绝(授权码签发 403,会话 cookie 无法建立)。PDF 导出路径全程走 kdocs-cli Token,是唯一不依赖网页会话的版式预览通道:
wps export 建任务 → query-export 轮询 → 签名 URL 下载(无需 cookie)→ 客户端懒加载内置 pdf.js 渲染
要点
- web 端零变化:iframe 在线编辑照旧;PDF 渲染 chunk(pdf.js v3.11.174,Apache-2.0)只在桌面端首次预览时懒加载,web 端永不下载
- 桌面端首次预览有数秒导出延迟;文档改动后点「↻」重新导出
- 撤回 0.3.1(未发布)曾尝试的内嵌网页登录页——真机证明不可行
- 新增 Host remote 方法
exportPdf(导出生成 PDF 副本,不回写原文档) - 配置新增
exportTimeoutMs/exportPollIntervalMs/pdfCacheMax
验证
- 273/273 测试通过(含真机活测:真实导出 / 缓存 / 强制刷新)
- 负向对照:拆掉桌面门控后契约断言如期转红;web 行为由行为级断言守住
- 真机双端验收:桌面端 macOS arm64 PDF 渲染保真;web 端回归无变化
需要 DSH ≥ 0.1.7-rc.1。安装与前置条件(kdocs-cli)见 README。