已收录

【鸿蒙二开】WPS SDK 只读与可编辑模式

社区里做鸿蒙 WPS 文档二开时,预览和编辑经常共用同一个 OpenFileRequest,真正决定「能不能改」的只有 enableEdit。未设置或写成 false 时客户端按只读(ReadOnly)打开;只有显式赋值为 true 才会进入可编辑(Normal)。本文按联调顺序写清注册门禁、沙箱拷贝与双入口封装,方便在社区对照现象一起排错。

调用顺序

  1. 集成 HAR,包名与 appKey / appSecret 对齐

  1. registerApp 回调到 ResultCode.OK

  1. 需要时在回调里 setWpsFileToken(不要写 request.wpsToken

  1. 选择器文件拷进 context.filesDir

  1. new OpenFileRequest → 设 enableEditWPSApi.sendRequest

未注册就 sendRequest 会抛异常,不是带 code 的打开结果。1013 先查凭据与 Bundle,不要先改模式开关。

代码要点

const req = new OpenFileRequest(ctx, sandboxPath);
// 预览:false 或不赋值;编辑:必须 true
req.enableEdit = editable;
const result = await WPSApi.sendRequest(req);

预览与编辑共用一个 openLocal(ctx, src, ext, editable),页面只传布尔。全仓应只保留一处 new OpenFileRequest

if (result.code !== ResultCode.OK) {
  console.error(result.code, result.msg);
  return;
}
// 未开回传时 OK + data==null 表示拉起成功

联调清单

  • 冷启动注册 code=0

  • 沙箱只读打开通过

  • 编辑入口传 true 可改

  • 预览入口未误传 true

  • 未注册走 .catch

  • 换 HAR 后 clean 再跑只读

封装补充

打开前务必完成沙箱拷贝。选择器返回的路径直接塞进 OpenFileRequest,在真机上经常表现为泛化 ERROR,日志不一定出现「权限」字样。建议固定目录如 filesDir/wps_inbox,文件名带时间戳,扩展名与真实类型一致。拷贝失败时直接把错误抛给业务层重试选择器,不要带着半截路径去 sendRequest

预览按钮与编辑按钮应共用同一个 helper,只差布尔参数。社区 Demo 若写成两段几乎相同的 new OpenFileRequest,后续加回传或水印时很容易只改一侧。Ability 启动阶段完成 registerApp,页面只读就绪态;点击里再构造 Request。Release 构建禁止打印完整 appSecret 与序列号明文。

enableEdit 与关窗回传独立:要拿关窗后的业务路径,另设 wpsTransferType 并拷回本应用沙箱。水印、extraOptions 等模式双绿后再叠。把双入口共用封装写进 Demo README,比口头约定更稳,也能减少「预览能改 / 编辑不能改」的串线帖。

常见现象

现象

优先排查

点击抛异常

是否未等到注册 OK

返回 1013

Bundle / key / HAR 是否对齐

打不开文档

是否未拷进应用沙箱

打得开但改不了

编辑入口是否未设 enableEdit = true

预览也能改

预览是否误传 true

OK 且 data 为空

是否未开回传(多数场景属预期)

不要在同一轮联调里同时改 Inbox 目录、Token 分支和 enableEdit 默认值。换 HAR 后先跑只读,再跑可编辑。调试包与商店包凭据分开申请。

小结与获取 SDK

鸿蒙侧 WPS 二开打开模式收成 enableEdit 一个字段:默认只读,显式 true 才可编辑。注册门禁与沙箱路径仍是前置条件;回传与水印是后续策略,不要和模式布尔绑死在同一匿名回调。社区发帖排查时建议带上:HAR 名、Bundle、注册 code/msg、打开 code/msg、本次 enableEdit 取值。把双入口共用封装写进 Demo,比口头约定更稳。

更多参数见官方对接文档:https://365.kdocs.cn/l/clQl5cek2NoT

申请 SDK HAR 与凭据:m_open_sdk@wps.cn(注明包名与专业版/个人版需求)。

技术交流 QQ 群:628436767

湖北省
浏览 84
收藏
2
分享
2 +1
+1
全部评论