WPS 鸿蒙二开:extraOptions 功能开关清单
社区同事常问:文档能打开了,怎么禁止分享、另存为或打印?在 WPS Open SDK 鸿蒙对接里,这些细粒度控制挂在同一次打开请求的 extraOptions 上,不必另走一套接口。下文按清单写,方便对照联调与真机点菜单验收。细节以官方对接文档为准。
能力落在哪
能力 | 入口 |
功能开关 | OpenFileRequest.extraOptions(OpenFileExtraOptions) |
只读/可编辑 | enableEdit |
水印/修订 | wpsWaterMarkParams / wpsRevisionParams |
关窗回传 | wpsTransferType / enableTransferFile |
先注册成功,再打开。路径建议先拷进应用沙箱。
关键规则
仅显式赋值生效;未赋值保持 WPS 默认
空的 OpenFileExtraOptions 不会关掉任何能力
需要关分享:写 enableShare = false(常连带 enableHomeShareTab)
与回传、水印字段互不替代
常用开关(按诉求)
诉求 | 字段 |
禁分享 | enableShare、enableHomeShareTab |
禁另存/导出 | enableSaveAs、enableExport |
禁打印 | enablePrint |
禁外部打开 | enableOpenWithExternalApp |
少云/登录打扰 | enableCloud、enableLogin、enableAutoUploadDoc |
禁复制(含剪切) | enableCopy |
完整字段表见官方对接文档「OpenFileExtraOptions」一节,上表只列联调高频项。
推荐联调顺序
注册 OK
沙箱只读打开
关分享(点菜单确认)
关另存/导出
可编辑 + 按需关云引导
需要时再开回传
每步只改一类字段。出现 ERROR 先看 msg,再对规则。
短示例(预览收紧)
const req = new OpenFileRequest(ctx, sandboxPath);
req.enableEdit = false;
const opt = new OpenFileExtraOptions();
opt.enableShare = false;
opt.enableHomeShareTab = false;
opt.enableSaveAs = false;
opt.enablePrint = false;
opt.enableExport = false;
opt.enableOpenWithExternalApp = false;
req.extraOptions = opt;
await WPSApi.sendRequest(req);常见误区
误区 | 说明 |
空对象当全关 | 未赋值 = 默认,不是 false |
只关 enableShare | 首页分享 Tab 可能仍在 |
外部路径直传 | 权限不足导致泛化 ERROR |
未等注册就发送 | 抛异常,与开关无关 |
回传与开关混查 | 两套字段,分开排查 |
小结
extraOptions 是打开管控:显式赋值并挂到 Request。先打开绿,再叠开关;回传另算。字段与示例以官方对接文档为准。欢迎在本圈补充真机菜单现象与排查经验。
接入时确认 HAR、沙箱目录、正式包包名。换 HAR 后 clean。需要序列号时按凭据约定全局设置。建议把「预览收紧」「无云」做成命名预设,页面只传预设名。验收必须点开分享/另存/导出/打印菜单,不要只看代码。把清单贴进联调页,新人对照会更快。
真机固定两条用例:只读 + 收紧外发;可编辑 + 无云引导。两条都绿后,再决定是否叠加水印或关窗回传。复制关闭后确认剪切是否同步。路径务必先落沙箱。未注册完成就发送会抛异常,应先查注册回调。社区反馈时写上 code / msg / 已赋值字段,比只说「不行」更利于定位。空对象不会关能力——这是最常见误判。把「显式 false + 赋给 Request + 点菜单确认」当成固定三步,联调会稳很多。欢迎补充各机型菜单差异,便于大家对齐验收口径。