【鸿蒙二开】旧版 WPS SDK 迁到统一版要点
已经接过旧 HAR 的同学,升统一版时最常问:要不要重写打开逻辑?按对接文档,API 仍是一套:WPSApi + OpenFileRequest。要改的是 HAR/凭据对齐,以及把 wpsToken 收进 setWpsFileToken。换包后若出现调试包装得上、正式包 1013,优先查 bundleName 与凭据是否同批次。本帖给最短检查清单,适合刚拿到统一版 HAR、准备在鸿蒙工程里收拢封装的同学。
迁移先做这三步
替换 libs/wps_sdk.har,ohpm install,工程 clean
核对 appKey / appSecret 与 bundleName(混用或包名漂移易出 1013)
专业版在 registerApp 成功回调里 setWpsFileToken;个人版注册成功即可打开
import {
WPSApi, OpenFileRequest, Result, ResultCode, SdkConstants
} from '@wps/wps_sdk';
WPSApi.registerApp(APP_KEY, APP_SECRET, {
onCallback: (result: Result): void => {
if (result.code !== ResultCode.OK) {
console.error(result.code, result.msg);
return;
}
if (!SdkConstants.isPersonalSdk()) {
WPSApi.setWpsFileToken(PRO_SN);
}
}
});凭据与包名绑定,专业版/个人版凭据不可混用。判断形态用 SdkConstants.isPersonalSdk(),别猜客户端包名。申请 HAR 时邮件注明包名与所需版本。
代码怎么收拢
删掉每次 request.wpsToken = …。若同时设了全局 token 与 Request 字段,以全局为准。业务只留一个 Facade:prepare(key, secret, sn?) + open(...)。预览/编辑共用,只差 enableEdit。文件先拷到应用沙箱再打开。
enableLocalization 仅专业版生效;不落地时分享/打印等可能被强制关闭,覆盖 extraOptions。联调顺序:注册 → 只读 → 可编辑 → 策略 → 回传;专业版再测不落地。
常见坑:换包不 clean;为 ToC 再复制一套 Helper;未注册就 sendRequest(两端都会抛异常);一次堆满所有开关导致 ResultCode.ERROR 难归因。
工程上只保留一个 Facade 即可。水印、回传用可选参数扩展,不要为每个入口复制一份 new OpenFileRequest。产品选专业版还是个人版是场景问题;开发是否分叉 API 是工程问题——统一版要消掉的是后者。换 flavor 后记得核对 bundleName,避免调试包装得上、正式包 1013。
小结与获取 SDK
统一版的迁移目标是:学习一次接口,按场景换 HAR,用适配层消化差异。字段与错误码以对接文档为准。联调时把 Result.code 与 msg 打全,比只打「打开失败」四个字好定位得多。
文件路径建议先拷到应用 filesDir 再打开。直接传外部 URI 时,权限不足常表现为泛化失败。预览与编辑共用 open,水印、回传用可选参数扩展即可。合入前再跑一遍正式包注册,确认凭据与包名一致。社区里也有同学反馈:迁完后个人版场景仍手动调 setWpsFileToken,多数情况下多余,用 isPersonalSdk 跳过即可,不必再写第二套注册函数。联调日志建议带上当前 HAR 形态与是否注入了序列号,方便对照正式包与调试包的差异,也避免把客户端未安装误判成 SDK 迁移失败。
更多参数见官方对接文档:https://365.kdocs.cn/l/clQl5cek2NoT
申请 SDK HAR 与凭据:m_open_sdk@wps.cn(注明包名与专业版/个人版需求)。
技术交流 QQ 群:628436767