【鸿蒙二开】WPS SDK 水印与安全策略要点
二开里「能打开」和「能过安全评审」不是一回事。不少同学 HAR 接好、注册也能过,一到水印、修订、不落地、extraOptions 就互相打架。这些能力都挂在 OpenFileRequest 上。本帖按最短路径说明参数组合与叠加顺序,适合刚拿到 HAR、要在鸿蒙工程里收紧外泄面的同学。
水印与修订怎么配
const mark = new WaterMark();
mark.Enable = true;
mark.WaterMaskText = 'UID:10086';
mark.Angle = -30;
mark.FontColor = '#19000000';
mark.FontSize = 24;
req.wpsWaterMarkParams = mark;
const rev = new Revision();
rev.UserName = 'alice';
rev.EnterReviseMode = true;
rev.ShowRevisionPanel = true;
rev.EnterRevisionSilent = true;
req.wpsRevisionParams = rev;预览可只开水印;编辑再叠加修订。文案来自登录态,别写死在按钮里。修订不等于禁打印,外泄面还要靠落地策略或菜单开关。
不落地与菜单谁优先
专业版未设置 / enableLocalization = false:不落地,云文档、分享、另存为、打印、导出、复制粘贴、截图等常被强制关闭,extraOptions 开了也无效。
enableLocalization = true:允许落地,再用 extraOptions 逐项关闭分享/打印/导出等。个人版设置不落地不生效。方案评审应先确认是否允许落地,再谈菜单矩阵。
req.enableLocalization = false; // ToB 默认不落地
// 或允许落地后再细调:
req.enableLocalization = true;
const extra = new OpenFileExtraOptions();
extra.enableShare = false;
extra.enablePrint = false;
extra.enableExport = false;
extra.enableSaveAs = false;
extra.enableScreenShot = false;
req.extraOptions = extra;路径先 copy 进应用沙箱再打开。选择器 URI 直传容易 ERROR。未开回传时 OK 且无 data 通常表示拉起成功。若开了 URI 回传,拷贝到己方沙箱后可按需删除 WPS 临时文件。
常见坑与联调
外部 URI 未 copy 进沙箱 → ERROR
不落地还指望 extraOptions 放开打印
忘记 enableEdit,修订配了仍只读
Release 打印 secret
回传后不清理 WPS 临时文件
ToC HAR 上调不落地却期望专业版行为
联调建议:注册门禁 → 沙箱只读 + 水印 → 可编辑 + 修订 → 再验证落地/菜单。CI 打印 Bundle、HAR 批次、是否允许落地。冷启动连点只应注册一次;弱网下也测一次打开入口门禁。
小结
可调用态 = 匹配 HAR + 注册成功 + 沙箱路径;安全策略 = 水印/修订 + 不落地边界 +(允许落地后的)extraOptions。字段以官方对接文档为准;封装稳定后,日常多半只改策略布尔,不必每次从零打穿 Demo。
建议把策略收敛到单一 policy 模块,页面只传操作者标识、是否可编辑、是否允许落地。内部 wiki 固定水印模板与菜单基线,换 HAR 后务必 clean。弱网与冷启动仍要测注册门禁:策略再完整,注册失败时也不应进入打开。Word 与表格小文件各跑一轮预览与编辑,确认水印与修订不是偶发。关窗回传场景下,业务落库后再清理临时文件,避免残留占用或泄露。
更多参数见官方对接文档:https://365.kdocs.cn/l/clQl5cek2NoT
申请 SDK HAR 与凭据:m_open_sdk@wps.cn(注明包名与专业版/个人版需求)。
技术交流 QQ 群:628436767