HarmonyOS PreviewKit 文件预览功能入门
本文以实际工程为例,快速上手 HarmonyOS 元服务的文件预览能力(PreviewKit),并配套一个后端用于提供示例文件。示例工程路径:
- 客户端(HarmonyOS 端):
client - 后端(Node.js):
server
上图是将 1 个 pdf 文件和 3 个图片一起预览,那么就只会显示第 1 个预览窗口。
下图是移除 pdf 文件,将 3 个同类型的图片放在一起预览
为了方便演示功能,需要先将一些可以预览的文件下载到元服务的沙箱内,是基于这个原因我们才需要引入后端来模拟这个下载的环境,所以元服务内需要先实现下载文件,存储到沙箱,然后再使用预览 API filePreview.openPreview 预览沙箱内的文件。
1. 工程结构与目标
client/entry/src/main/ets/pages/Index.ets:演示并发下载 4 个文件(1.pdf、1.png、2.png、3.png)并一次性预览。server/index.js与server/public/:提供静态文件下载接口/file/:filename。
目标:
- 点击'下载'按钮,并发下载上述 4 个文件到应用沙箱目录。
- 下载成功后点击'预览',一次性打开最多 4 个文件的预览窗口。
2. PreviewKit 的核心:filePreview.openPreview
HarmonyOS 提供了预览能力包 @kit.PreviewKit。在 ETS 代码中引入:
import { filePreview } from '@kit.PreviewKit';
import { fileUri } from '@kit.CoreFileKit';
核心调用是:
// 先准备多个文件的预览信息
const previewList: filePreview.PreviewInfo[] = [];
for (let i = 0; i < count; i++) {
const item = this.lastDownloadedList[i];
const fileInfo: filePreview.PreviewInfo = {
: item.,
: fileUri.(item.),
: item. || ,
};
previewList.(fileInfo);
}
filePreview.(uiContext, previewList).( {
}).( {
});


