【鸿蒙二开】WPS SDK 水印与修订配置
社区里做鸿蒙 WPS 文档二开时,文档能打开后,下一问往往是:怎么加预览水印?怎么以修订模式打开?在 WPS Open SDK 鸿蒙对接里,这两类配置都挂在同一次 OpenFileRequest 上,不必另走一套接口。下文按清单写,方便对照联调。细节以官方对接文档为准。
能力落点与调用顺序
能力 | 入口 |
水印 | OpenFileRequest.wpsWaterMarkParams(WaterMark) |
修订 | OpenFileRequest.wpsRevisionParams(Revision) |
只读/可编辑 | enableEdit |
关窗回传 | wpsTransferType / enableTransferFile |
先注册成功,再打开。路径建议先拷进应用沙箱。推荐顺序:集成 HAR 并对齐包名与 appKey / appSecret → registerApp 到 ResultCode.OK → 需要时在回调里 setWpsFileToken(不要写 request.wpsToken)→ 选择器文件拷进 context.filesDir → new OpenFileRequest → 设 enableEdit → 设水印/修订 → WPSApi.sendRequest。未注册就发送会抛异常,不是带 code 的打开失败。1013 先查凭据与 Bundle,不要用改水印去排。
水印与修订清单
水印:Enable = true,WaterMaskText 非空,可选 Angle / FontColor / FontSize,赋给 wpsWaterMarkParams。只读预览也可以带水印。颜色过淡时,先调深确认逻辑再调美观。
修订:EnterReviseMode = true,UserName 有业务意义,通常配合 enableEdit = true,可选 ShowRevisionPanel、EnterRevisionSilent。只读状态下设修订,用户侧常感觉「没生效」。静默进入可减少弹窗,日志仍要记录。
代码与封装
const req = new OpenFileRequest(ctx, sandboxPath);
// 预览:false 或不赋值;编辑:必须 true
req.enableEdit = editable;
const wm = new WaterMark();
wm.Enable = true;
wm.WaterMaskText = text;
req.wpsWaterMarkParams = wm;
const rev = new Revision();
rev.UserName = user;
rev.EnterReviseMode = true;
req.wpsRevisionParams = rev;
const result = await WPSApi.sendRequest(req);
if (result.code !== ResultCode.OK) {
console.error(result.code, result.msg);
return;
}
// 未开回传时 OK + data==null 表示拉起成功预览与编辑共用同一个 openLocal(ctx, src, ext, editable, policy),页面入口只传参数。全仓尽量只留一处 new OpenFileRequest。Ability 启动阶段完成注册,页面只读 ready 状态;点开里再构造 Request。
联调、现象与小结
联调勾选:注册 code=0 → 沙箱只读 → 只读 + 水印 → 可编辑传 true → 可编辑 + 修订 → 未注册进 .catch → 换 HAR 后 clean 再只读回归。
现象 | 优先查 |
抛异常 | 是否未注册就发送 |
返回 1013 | Bundle / key / HAR 是否对齐 |
打不开文档 | 是否未拷进沙箱 |
看不见水印 | 是否未设 Enable = true |
修订看起来无效 | 是否未开 enableEdit = true |
OK 且 data 为空 | 是否未开回传(预期) |
不要在同一轮联调里同时改 Inbox 路径、Token 与 enableEdit。调试包与正式包包名不同时分开申请凭据。官方把打开模式收成 enableEdit 一支配置:默认只读,显式 true 才可编辑。水印与回传正交;未开回传时 OK + 空 data 是正常现象。社区联调建议带齐:HAR 名、Bundle、注册 code/msg、打开 code/msg、本次 enableEdit、水印文字长度、是否进修订。把双入口共用封装写进 Demo README,比口头约定更稳。Release 包禁止打印完整 appSecret。预览与编辑共用 helper,策略字段显式赋值,漏 Enable 或只读进修订会少很多。
更多参数见官方对接文档:https://365.kdocs.cn/l/clQl5cek2NoT
申请 SDK HAR 与凭据:m_open_sdk@wps.cn(注明包名与专业版/个人版需求)。
技术交流 QQ 群:628436767