【鸿蒙二开】WPS SDK extraOptions 功能开关实践

在做 HarmonyOS 应用接入 WPS Open SDK 时,很多同事一开始只关注「能不能打开 Word」。真正上线前,产品与安全往往会追问:用户能不能从 WPS 里把文件分享出去?能不能打印、导出、同步云文档?这些细粒度能力,就要靠 OpenFileRequest.extraOptions(类型 OpenFileExtraOptions)来管控。本文结合一次实际二开接入,把常用开关、示例代码和踩坑点整理成帖,方便在社区里交流。

和 enableEdit 的分工

enableEdit 解决的是只读还是可编辑;extraOptions 解决的是 WPS 客户端里哪些菜单和入口该出现。二者配合,才能在「允许改文档」的同时,收紧外发渠道。这是鸿蒙 WPS 二开里很常用的一组参数。

常用开关一览

extraOptions 挂在打开请求上,仅显式赋值的字段生效,未赋值保持 WPS 默认行为。政企场景里,下面这些通常优先评估:

属性

作用

enableShare / enableHomeShareTab

分享相关入口

enableCloud / enableAutoUploadDoc

云文档与自动上传

enablePrint / enableExport

打印与导出

enableScreenShot

文档内截图

enableOpenWithExternalApp

跳转外部应用

enableCopy / enablePaste

复制粘贴

建议由产品、安全、研发一起列「场景—开关矩阵」,再映射到代码,避免上线后临时改配置。例如对外协同场景可保留复制、关闭分享;纯内网预览则可同时关闭打印与导出。上线前最好在 Word、表格、PDF 三类文档上各测一轮,确认菜单表现符合预期。

测试建议

1. 在真机上逐项尝试分享、云文档、打印、导出、截图,确认关闭后无绕过路径。

2. `sendRequest` 返回 Promise,成功与失败分支都要处理,避免用户只看到白屏。

3. 专业版需额外验证:不落地 + `extraOptions` 组合是否符合安全要求。

4. 若同时配置水印(`wpsWaterMarkParams`),可与 `extraOptions` 形成「看得见归属、做不了外发」的闭环。

代码示例

文件路径请使用应用沙箱内路径;专业版完成 registerAppsetWpsFileToken 后,可参考:

import { common } from '@kit.AbilityKit';
import {
  WPSApi,
  OpenFileRequest,
  OpenFileExtraOptions,
  ResultCode,
} from '@wps/wps_sdk';

function openDocRestricted(
  ctx: common.UIAbilityContext,
  sandboxPath: string
) {
  const req = new OpenFileRequest(ctx, sandboxPath);
  req.enableEdit = true;

  const opt = new OpenFileExtraOptions();
  opt.enableShare = false;
  opt.enableCloud = false;
  opt.enablePrint = false;
  opt.enableExport = false;
  opt.enableScreenShot = false;
  opt.enableOpenWithExternalApp = false;
  req.extraOptions = opt;

  return WPSApi.sendRequest(req).then((r) => {
    if (r.code !== ResultCode.OK) throw new Error(r.msg);
  });
}

与不落地(enableLocalization)的关系

专业版 SDK 默认「文档不落地」时,会强制关闭云文档、分享、打印、导出、截图等——此时 extraOptions 里即使写成 true 也无效。方案评审时应先定是否不落地,再讨论 extraOptions 灵活度。若业务允许落地,可设 enableLocalization = true,再按合规等级逐项放开或收紧开关。个人版 SDK 不触发不落地逻辑,接口一致,测试时注意 HAR 与凭据版本对应,避免混用导致行为误判。

统一版 WPS Open SDK 让专业版与个人版共用同一套参数模型。ISV 可用 SdkConstants.isPersonalSdk() 在构建 extraOptions 时做少量分支:政企客户默认全关,个人版场景适当放开复制与保存,无需维护两套完全不同的打开逻辑。

小结与获取 SDK

extraOptions 让「嵌入 WPS」变成「可控地嵌入 WPS」,适合政务、金融等 ToB 场景。统一版 WPS Open SDK 专业版与个人版共用 API,有利于 ISV 一套代码服务多类客户。

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

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

技术交流 QQ 群:628436767


基于 WPS Open SDK 鸿蒙版实践整理,仅供开发者交流参考。
湖北省
浏览 236
收藏
5
分享
5 +1
+1
全部评论