【鸿蒙二开】WPS SDK Demo 工程集成要点

二开里「Demo 能打开」和「业务工程稳定可调用」不是一回事。不少同学把 @wps/wps_sdk 丢进工程后,直接抄 Demo 按钮逻辑,结果冷启动 reject、路径 ERROR、ToB/ToC 凭据混用。本帖按最短路径说明 HAR 依赖、registerApp 封装、沙箱打开与联调建议,适合刚拿到 HAR 的鸿蒙开发者。

依赖怎么接

{
  "dependencies": {
    "@wps/wps_sdk": "file:./libs/wps_sdk.har"
  }
}

HAR 放 libs/,执行 ohpm install。换批次务必 clean,否则旧 so 会让鉴权结论失真。ToB / ToC 为不同包,凭据不可混用;申请时写清最终安装的 Bundle 包名。调试包与上架包若包名不同,通常要分别申请或明确以哪套为准。

内部建议归档:申请回执、HAR 文件 hash、绑定 Bundle、是否需要激活序列号。secret 进 CI 或本地密钥库,不要提交公开仓库。

注册怎么写

const req = new RegisterAppRequest(ctx, APP_KEY, APP_SECRET);
const result = await WPSApi.sendRequest(req);
if (result.code !== ResultCode.OK) {
  throw new Error(result.msg ?? String(result.code));
}
// ToB 通常在此 setWpsFileToken;ToC 一般不需要
if (ACTIVATION_SN) {
  WPSApi.setWpsFileToken(ACTIVATION_SN);
}

未注册成功就 OpenFileRequest,常见直接 reject。工程里收成 ensureRegistered,页面只 await;用 in-flight Promise 防连点。也可用文档中的 WPSApi.registerApp 回调写法,语义相同。首页按钮建议默认不可用,等注册 OK 再亮。

专业版激活序列号请联系 WPS 商务 / 技术支持,与 m_open_sdk@wps.cn 凭据邮件渠道不同。两套材料分目录存放,避免「只有 key 没有 SN」。

打开注意沙箱

待打开文件须先进入本应用可访问路径,再 new OpenFileRequest(ctx, path)。选择器 URI 直传容易 ERROR。enableEdit 控制只读/可编辑。轻量联调可不设回传:OK 且无 data 通常表示拉起成功,不要当成业务已落库。

建议模块划分:auth / sandbox / open。水印、extraOptions、关窗回传叠在注册与沙箱打开之后,便于归因。一次堆满参数时,ResultCode.ERROR 很难定位。

常见坑

  • 调试包名 ≠ 申请单包名 → 1013

  • 页面多处注册 → 冷启动日志乱

  • 换 HAR 不 clean → 旧 so 干扰

  • 忘记 enableEdit → 只能预览

  • Release 打印 secret → 安全问题

  • Preview / Release flavor 混用 key

  • 上传重试把注册失败算进去 → 告警噪声

联调建议:冷启动连点只注册一次;错包名必须失败;沙箱只读 → 再编辑;CI 打印 Bundle 与 HAR hash;限时凭据记下到期日。Word 与表格小文件各跑一轮 preview / edit。

小结

可调用态 = 匹配的 HAR + 包名绑定凭据 + 注册成功 + 沙箱路径。把 Demo 演示按钮拆成模块后,日常需求通常只改打开参数或上传接口,不必再打穿依赖与鉴权。字段与渠道以官方对接文档为准;换包名或续期时优先回归注册与打开用例,而不是先改业务上传。新人接手先对申请清单再写代码,比直接抄 Demo 更稳。

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

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

技术交流 QQ 群:628436767

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