已收录

【鸿蒙二开】WPS SDK 打开本地文档要点

HarmonyOS 应用要在端内打开 Word、Excel、PPT,常见路径是集成 WPS Open SDK 鸿蒙统一版:一套 WPSApi 覆盖专业版(ToB)与个人版(ToC)。两边都必须 registerApp 成功才能 sendRequest。打开动作集中在 OpenFileRequest:构造要沙箱可读路径,enableEdit 未设就是只读,未注册就打开会抛异常而不是返回失败码。社区联调里最常见的两类现象是:系统选择器路径直接丢给 WPS,以及把拉起成功当成「已保存」。本文按交流帖口径压缩成要点、最小代码与排查清单。

打开在调用链中的位置

顺序固定:HAR → registerApp → ToB 再 setWpsFileToken → 拷贝进应用沙箱 → new OpenFileRequestsendRequest。ToC 注册 OK 即可打开,无需序列号。不要把 Token 写在 OpenFileRequest.wpsToken 上。构造函数两个参数都必填:UIAbilityContext 必须是当前 Ability,fileUri 建议已拷进 filesDir 的路径。系统选择器 URI 直接传入时,WPS 进程常常读不到,msg 却不一定写权限二字。

官方对接文档:https://365.kdocs.cn/l/clQl5cek2NoT

最小代码

import { WPSApi, OpenFileRequest, ResultCode } from '@wps/wps_sdk';

const req = new OpenFileRequest(ctx, sandboxPath);
req.enableEdit = true; // 不写或 false = 只读
const r = await WPSApi.sendRequest(req);
if (r.code === ResultCode.OK && !r.data) {
  // 未开回传:只表示拉起成功
}

注册侧仍要先 OK。未注册时 sendRequest 走 reject。

对照表

检查

说明

Context

当前 UIAbility

路径

先拷到 filesDir

enableEdit

显式 true 才能改

Token

全局 setWpsFileToken,不写 Request

空 data

未开回传时正常

现象对照

  • 「点了没反应」:按钮没等注册 OK,异常被吞

  • 「文件管理器能开、应用内不能」:没拷沙箱

  • 「只读也能改」:漏写或误写 enableEdit

  • 「提示保存成功」:把拉起 OK 当成回传

能力叠加约定:注册成功 → 按需 Token → 只读打开 → 可编辑 → 水印 / extraOptions → 回传。出现 1013 时先对齐 Bundle 与申请归档,不要先改路径。调试包与正式包 Bundle 不同时,凭据必须分开。HAR 升级后先只替换依赖并重跑注册与只读打开。

联调清单

  • 冷启动注册 OK

  • 选择器文件拷进沙箱再打开

  • 只读 / 可编辑各验一次

  • ToB 确认 setWpsFileToken;全仓清理 request.wpsToken

  • 未开回传时 UI 不说「已保存」

  • 全仓只有一处 new OpenFileRequest

预览入口与编辑入口共用一个打开函数,只差 enableEdit 布尔值。两套 new OpenFileRequest 后续叠水印时容易漂移。sendRequest 未注册走 reject,UI 要单独文案,不要显示成文档损坏。换 HAR 后 ohpm install 并 clean。调试包与商店包凭据分开归档。全仓搜索 new OpenFileRequest 应只落在封装文件。

小结与获取 SDK

统一版交付是一套 API 覆盖双形态,打开面仍要守住注册门禁、沙箱路径、默认只读、异常与 Result 分列。发版评审把 HAR 文件名与一次冷启动注册日志写进周期。字段以官方对接文档为准,随小版本核对 enableEdit 与回传开关,不要把整张参数表贴进业务页。

更多参数见官方对接文档:https://365.kdocs.cn/l/clQl5cek2NoT

申请 SDK HAR 与凭据:m_open_sdk@wps.cn(注明包名与专业版/个人版需求)。

技术交流 QQ 群:628436767

湖北省
浏览 93
收藏
2
分享
2 +1
+1
全部评论