WPS 鸿蒙二开:关闭回传 URI/FD 清单

社区同事常问:编辑完关掉文档,怎么把结果拿回三方应用?在 WPS Open SDK 鸿蒙对接里,关闭回传挂在同一次 sendRequest 上:设了回传就会等待用户关窗,再在结果里给出 URI 或 FD。下文按清单写,方便对照联调。细节以官方对接文档为准。

能力落在哪

能力

入口

开启回传

enableTransferFilewpsTransferType

URI / FD

TransferType.URI / TransferType.FD

结果数据

Result.datafileUri / transferFd

本应用可用路径

拷贝到本应用沙箱之后

先注册成功,打开路径建议先落沙箱。wpsTransferType 优先级高于 enableTransferFile

关键规则

  • 未开回传:拉起成功即可 OK,data 常空(正常)

  • 开了回传:等到用户关闭文档才返回带数据的结果

  • URI 的 fileUri 在 WPS 沙箱,必须拷贝到本应用后再给业务

  • FD 用后关闭描述符;关注文件名等 parameters

推荐联调顺序

  1. 注册 OK

  1. 沙箱可编辑打开(不开回传)

  1. 开 URI 回传 → 关文档 → 见 fileUri

  1. 拷贝到本应用沙箱并验证可读

  1. 可选再验 FD

每步只改一类行为。ERROR 先看 msg

短示例(URI)

const req = new OpenFileRequest(ctx, sandboxPath);
req.enableEdit = true;
req.wpsTransferType = TransferType.URI;

const result = await WPSApi.sendRequest(req);
if (result.code === ResultCode.OK && result.data?.fileUri) {
  const local = copyWpsUriToSandbox(ctx, result.data.fileUri);
  // 业务只用 local
}

常见误区

误区

说明

以为卡死

其实在等关窗

OK 且 data 空当失败

未开回传时属正常

直接用 fileUri

未拷贝,后续易失败

FD 不 close

资源泄漏

回传与水印混查

不同字段,分开排查

小结

关闭回传是结果层等待:显式设置类型,关窗后解析,再拷贝到本应用沙箱。字段与示例以官方对接文档为准。欢迎在本圈补充真机等待与拷贝现象。

接入时确认 HAR、沙箱目录、正式包包名。换 HAR 后 clean。建议 Facade 统一回传模式与拷贝。UI 提示「请关闭文档以回传结果」,减少误报卡死。拷贝目录用时间戳隔离。需要清理临时文件时,拷贝成功后再删,失败只打日志。

真机固定用例:可编辑 + URI 拷贝成功。可选 FD。反馈时写上是否开回传、模式、是否已得到本应用路径。把「未开回传 data 可空;开了要等关窗;URI 先拷贝」三句话贴进联调页,新人对照会更快。路径务必先落沙箱。未注册完成就发送会抛异常,应先查注册。欢迎补充各机型关窗时序差异,便于对齐验收口径。

开了回传时,页面最好有「等待关闭文档」提示,避免被当成卡死。拷贝目录用时间戳,防止两次编辑互相覆盖。清理临时文件失败只打日志,不要挡住已经拿到的本应用路径。URI 与 FD 验收分开做。把清单坚持几周,回传相关提问通常会减少。细节以官方对接文档为准。


湖北省
浏览 159
收藏
5
分享
5 +1
+1
全部评论