WPS 鸿蒙二开:WPSApi 与 sendRequest 清单
接入 WPS Open SDK 鸿蒙版时,统一入口是单例 WPSApi。打开文档走 sendRequest(OpenFileRequest),返回 Promise<Result>;未注册成功会抛异常。下文按清单整理,方便对照联调。细节以官方对接文档为准。先收稳调用面与 Promise 处理,再叠编辑与回传,失败时更好归因,也少和业务字段搅在一起。
能力落在哪
诉求 | 入口 |
单例入口 | WPSApi |
注册 | registerApp / RegisterAppRequest |
打开 | sendRequest + OpenFileRequest |
结果 | Result.code / msg / data |
业务页不要复制多套 then。差异收在 ensure + open 两个函数。联调先绿注册,再只读打开,再编辑,最后回传。一次堆满开关时,失败更难归因。
关键:未注册禁止 sendRequest
对接文档明确:注册成功前调用 sendRequest 会抛异常。联调「打不开」时先看 catch 是否未注册,再查路径与 1013。打开按钮在 ready 前禁用。日志区分注册失败与打开失败。
短示例与联调五步
await ensureWps(ctx, CRED);
const req = new OpenFileRequest(ctx, sandboxPath);
req.enableEdit = true;
const result = await WPSApi.sendRequest(req);
if (result.code !== ResultCode.OK) throw new Error(result.msg ?? '');注册 OK
故意未注册确认 catch
沙箱只读打开
可编辑;(可选)URI 回传拷贝
正式包包名复测
外部文件先入 filesDir。开了 URI 后 UI 提示关窗;fileUri 须先拷贝。未开回传时 data 空属正常。每步只改一类行为。故意未注册冒烟用例建议写进联调页,避免新人漏测门禁。
高频坑
现象 | 说明 |
抛异常 | 未注册 |
1013 | 凭据/包名/HAR |
只能预览 | enableEdit |
data 空 | 未开回传属正常 |
一直转圈 | 回传等待关窗 |
笼统 ERROR | 路径是否在沙箱 |
换 HAR 后 clean。密钥勿进公开仓。反馈请带:是否已注册、code/msg。并发打开时拷贝目录隔离。正式包复测。开了回传时 UI 提示「请关闭文档」。路径先入沙箱,少踩笼统 ERROR。把「必须处理 then/catch」写进 PR 勾选项。
小结
范式 = WPSApi + 先注册 + sendRequest Promise + 按 Result 分支。欢迎补充真机 catch / 回传表现。
接入评审确认 HAR 与包名。把对照表贴进联调页。坚持清单验收。注释写清「未注册禁止 sendRequest」「必须处理 Promise」。周五正式包再验注册与可编辑打开。联调原则仍是分层。产品需求拆成注册/只读/可编辑/回传。字段以官方对接文档为准。同一工程多渠道包列全 Bundle 名。路径先入沙箱。新人按门禁 → 打开 → 回传 Onboarding。客服工单把「打不开」「卡住」拆层。欢迎在帖下补充真机 catch 与回传等待表现。把「必须处理 then/catch」写进 PR 模板,合入时多一道自检。
接入评审把「未注册禁止 sendRequest」写成检查项。欢迎补充真机包名与 HAR 版本,方便对照。坚持清单两周,入口类误报通常会下降。
更多参数见官方对接文档:https://365.kdocs.cn/l/clQl5cek2NoT
申请 SDK HAR 与凭据:m_open_sdk@wps.cn(注明包名与专业版/个人版需求)。
技术交流 QQ 群:628436767