【鸿蒙二开】WPS Open SDK 凭据与 HAR 申请
在鸿蒙应用里接入 WPS Open SDK,文档打开代码通常很快就能写完,但真机联调时经常先卡在注册阶段:HAR 已经集成,页面也能正常编译,调用 sendRequest 却直接抛出异常,或者 registerApp 返回鉴权失败。这类问题的根因通常不在 OpenFileRequest 参数,而在接入凭据、Bundle 包名和 HAR 批次是否匹配。本帖按申请、集成、注册和排错四步整理一条可核对的最短路径。
申请材料写清楚
申请 SDK HAR 与接入凭据时,建议一次性提供以下信息:
应用名称与文档模块用途,例如预览、编辑或关闭回传。
最终安装包的 Bundle 名称,调试包与正式包不同要分别说明。
所需 SDK 交付批次与版本类型。
联系人及回访方式。
当前方案是否需要激活序列号,以及对应的申请渠道。
申请项 | 用途 | 渠道 |
HAR、appKey、appSecret | SDK 集成与应用身份校验 | |
激活序列号 | 按交付约定补齐授权 | WPS 商务 / 技术支持 |
接入凭据与包名绑定。包名变更后需要重新申请;调试包和正式包使用不同包名时,也应分别建立配置。建议在工程内部保存申请回执、包名和 HAR 文件名的对应关系,避免多人协作时混用。
两套材料不要混淆
SDK 接入凭据与激活序列号用途不同。appKey / appSecret 用于 registerApp,校验应用是否有权调用 SDK;激活序列号通过 setWpsFileToken 设置,用于产品侧授权,并且应在注册成功后调用。个人版注册成功后不需要设置序列号,专业版通常需要在回调 ResultCode.OK 后设置。
工程侧不要把 secret 写进页面代码或公开仓库。可以通过构建配置或 CI 注入,日志只记录包名、HAR 文件名和 key 末几位,既能区分环境,也不会暴露完整凭据。
集成 HAR 并完成注册
将 wps_sdk.har 放入 libs 目录,在 oh-package.json5 中添加依赖:
{
"dependencies": {
"@wps/wps_sdk": "file:./libs/wps_sdk.har"
}
}执行 ohpm install 后,在应用启动或进入文档模块时注册:
import { WPSApi, Result, ResultCode } from '@wps/wps_sdk';
let readyPromise: Promise<void> | null = null;
function ensureRegistered(
appKey: string,
appSecret: string,
activationToken?: string
): Promise<void> {
if (readyPromise) return readyPromise;
readyPromise = new Promise<void>((resolve, reject) => {
WPSApi.registerApp(appKey, appSecret, {
onCallback: (result: Result): void => {
if (result.code !== ResultCode.OK) {
readyPromise = null;
reject(new Error(`${result.code} ${result.msg}`));
return;
}
if (activationToken) {
WPSApi.setWpsFileToken(activationToken);
}
resolve();
}
});
});
return readyPromise;
}打开文档前等待这个 Promise,再构造 OpenFileRequest 并调用 sendRequest。注册未成功时不要发请求,否则通常会直接抛异常。多个入口共享同一个注册状态,可以避免重复注册和并发点击导致的状态混乱。
失败时先看注册阶段
1013 对应 ERROR_CODE_AUTH_FAILURE,常见原因是运行时包名与申请时不符、appKey 或 appSecret 注入错误、HAR 批次不匹配,或者限时凭据已经失效。排查顺序建议是:读取运行时 Bundle 名称,确认当前构建使用的密钥来源,核对 HAR 文件,最后再确认凭据有效期。
注册成功后的打开异常属于另一类问题。先检查文件是否已复制到应用沙箱、enableEdit 是否符合预期,再结合 sendRequest 返回的 result.code 与 result.msg 定位。把注册错误和打开错误分开记录,可以少走很多弯路。
小结与获取 SDK
鸿蒙二开的基础链路可以概括为:申请匹配材料、集成 HAR、注册成功、再打开文档。把包名、凭据和 HAR 三者固定下来,后续编辑、水印、功能开关和关闭回传才有稳定的接入基础。
更多参数见官方对接文档:https://365.kdocs.cn/l/clQl5cek2NoT
申请 SDK HAR 与凭据:m_open_sdk@wps.cn(注明包名与专业版/个人版需求)。
技术交流 QQ 群:628436767