【鸿蒙二开】WPS SDK 统一版解决了哪些工程痛点
社区里做鸿蒙 WPS 文档二开,常见吐槽不是「API 太长」,而是:预览/编辑各写一套打开、换交付包就要全仓改注册、个人用户场景覆盖不了。WPS Open SDK 鸿蒙统一版把接口收成 WPSApi + OpenFileRequest,按场景换 HAR 与凭据即可,业务 Facade 可共用。下面按三条痛点写收敛思路。
痛点 1:多套平行打开代码
现象 | 收敛 |
预览/编辑复制构造 | 单一 openDoc(editable) |
水印/回传又复制一份 | 可选参数扩展 Facade |
Review 找不到入口 | 全仓一处 new OpenFileRequest |
痛点 2:注册与鉴权散落
未注册就 sendRequest 会 reject;1013 查包名与凭据。建议 ensureRegistered 集中注册,成功后再 setWpsFileToken(按 HAR 约定)。
let ready = false;
async function ensureRegistered(ctx: UIAbilityContext) {
if (ready) return;
const r = await WPSApi.sendRequest(
new RegisterAppRequest(ctx, APP_KEY, APP_SECRET)
);
if (r.code === ResultCode.ERROR_CODE_AUTH_FAILURE) {
throw new Error(`1013: ${r.msg}`);
}
if (r.code !== ResultCode.OK) throw new Error(`register ${r.code}`);
if (!SdkConstants.isPersonalSdk() && SN) {
WPSApi.setWpsFileToken(SN);
}
ready = true;
}冷启动 await ensureRegistered;按钮在 ready 前禁用。Release 不打 secret。
痛点 3:路径与只读默认值
选择器路径先 copy 到 filesDir;enableEdit 默认只读,编辑须显式 true。OK 且无 data 在未开回传时正常,勿当上传失败。
async function openDoc(ctx: UIAbilityContext, path: string, edit: boolean) {
await ensureRegistered(ctx);
const req = new OpenFileRequest(ctx, path);
req.enableEdit = edit;
const r = await WPSApi.sendRequest(req);
if (r.code !== ResultCode.OK) {
console.error(r.code, r.msg);
}
}四、联调、错误码与 Facade 纪律
勾选项:注册 OK 再打开;沙箱路径;编辑显式 enableEdit;日志带 code/msg;换 HAR 后 clean。
现象 | 优先查 |
reject | 是否 ensureRegistered |
1013 | 包名、key、HAR |
ERROR | 沙箱路径、enableEdit |
OK 无 data | 是否开启回传 |
社区常问 Facade 纪律:全仓一处 new OpenFileRequest;注册与 setWpsFileToken 在 bootstrap;预览 enableEdit=false、编辑显式 true;水印用可选参数扩展;Release 不打 secret。日志带 stage=register|open|transfer,驻场排查更快。正式包与调试包包名不同时,凭据须分别申请,否则易出现偶发 1013。
五、小结与获取 SDK
统一版降低的是接口分裂与维护成本,不是取消凭据对齐。把 ensureRegistered + openDoc 放进基础库,比每个页面抄 Demo 稳。同仓库多客户交付时,按 flavor 换 HAR/凭据即可,UI 与 Facade 可长期共用。联调先把「注册 OK → 沙箱打开」跑绿,再叠水印与回传,能避免一次堆参难查根因。
社区联调常见误区:把 OK 且无 data 当成上传失败(未开回传时属正常);把只读当成打开失败(忘写 enableEdit);把 reject 当成 ERROR(其实是未注册)。建议在群里贴日志时带上 stage 与 code,比只说「打不开」更易对症。Ability 冷启动完成注册后再放开按钮,可减少连点 reject。正式包与内测包包名不同须分别申请凭据,否则易出现偶发 1013。水印、extraOptions 请在最小打开通过后以可选参数扩展 Facade,不要复制第三份 openDoc。
更多参数见官方对接文档:https://365.kdocs.cn/l/clQl5cek2NoT
申请 SDK HAR 与凭据:m_open_sdk@wps.cn(注明包名与专业版/个人版需求)。
技术交流 QQ 群:628436767