【鸿蒙二开】WPS 专业版与个人版 SDK 怎么选
准备接鸿蒙 WPS Open SDK、纠结专业版(ToB)还是个人版(ToC)的同学,可以按本帖三问 + 最短清单决策。按对接文档,API 是一套:WPSApi + OpenFileRequest。差异落在 HAR / 凭据、是否 setWpsFileToken、以及不落地等字段是否生效——不要为此复制两套打开代码。立项时先定客户端形态与合规要求,再申请对应 HAR,比联调中途换包便宜。
三问定版本
真机对接的是专业版 WPS 还是个人版 WPS?
是否强制文档不落地合规?需要则走专业版。
能否走激活序列号流程?专业版通常要;个人版注册成功后一般不要。
项 | 专业版 | 个人版 |
HAR / 凭据 | 匹配专业版 | 匹配个人版 |
注册 | 必须 | 必须 |
setWpsFileToken | 通常必须 | 一般不需要 |
enableLocalization | 生效 | 不生效 |
申请邮件写清包名与版本需求。凭据与 bundleName 绑定,不可混用。
适配怎么写
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);
}
}
});未注册成功就 sendRequest 会抛异常。打开仍共用一处 OpenFileRequest:先沙箱路径,再 enableEdit。联调顺序:注册 → 只读 → 可编辑 → 再叠策略 / 回传。一次堆满开关,ResultCode.ERROR 很难归因。
上手检查表
申请批次与真机 WPS 客户端是否对齐
全仓是否只有一处 new OpenFileRequest
是否还残留逐次 request.wpsToken
正式包包名与凭据是否一致;换 HAR 后是否 clean
需要不落地时,是否误走了个人版链路
建议把上面几条写进 PR 模板。多人并行接入时,冻结平行 Helper,统一走 Facade。选型解决的是「申请哪套包」;打开封装仍应只有一套。字段语义以官方对接文档为准。路径务必先落到沙箱;外部 URI 权限不足时常见泛化 ERROR。新人上手时,先画清三问再对照文档核对字段,比直接复制 Demo 更稳。本帖仅作社区交流备忘,细节以官方文档与当前 HAR 说明为准。
打开仍共用一处
async function openDoc(
ctx: UIAbilityContext,
src: string,
editable: boolean
): Promise<Result> {
await prepareWps();
const path = copyToSandbox(ctx, src);
const req = new OpenFileRequest(ctx, path);
req.enableEdit = editable;
return WPSApi.sendRequest(req);
}路径先落沙箱。默认只读;显式 true 才可编辑。需要不落地验收时,必须在专业版链路测;个人版侧 enableLocalization 不生效。extraOptions 仅显式赋值生效。换 HAR 或换包名后 clean,再验正式包是否 1013。Release 不要打印完整 secret。新人上手时,先画清三问再对照文档核对字段,比直接复制 Demo 更稳。
把选型检查写进 PR 模板:申请批次是否对齐、全仓是否只有一处 new OpenFileRequest、是否还残留逐次 wpsToken、正式包包名是否一致。多人并行接入时冻结平行 Helper。真机联调日志建议打全 code / msg / 是否个人版 / 是否 ready。字段语义以官方对接文档为准;本帖仅作社区交流备忘。
小结与获取 SDK
专业版与个人版共用 API,差异收在依赖与注册后步骤。先答对三问再申请,比联调中途换包便宜。把 prepare / open 固化后,页面只关心已注册与可打开。统一版减少的是页面层分裂,取消不了 HAR / 凭据匹配。
更多参数见官方对接文档:https://365.kdocs.cn/l/clQl5cek2NoT
申请 SDK HAR 与凭据:m_open_sdk@wps.cn(注明包名与专业版/个人版需求)。
技术交流 QQ 群:628436767