示例参考如下:import { filePreview } from '@kit.PreviewKit'; import { promptAction } from '@kit.ArkUI'; import { fileIo as fs, fileUri } from '@kit.CoreFileKit'; @Entry @Component struct Index { @State message: string = 'Hello World'; private fileName: string = 'preview_info.txt'; build() { Row() { Column() { Button('openPreview') .onClick(async () => { let context = getContext(this); let fileDir = context.filesDir; // 获取沙箱路径 let filePath = fileDir + '/' + this.fileName; let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE | fs.OpenMode.TRUNC); // 创建文件 let uri = fileUri.getUriFromPath(filePath); // 获取uri let str: string = "hello, world"; let writeLen = fs.writeSync(file.fd, str); // 写入文件 console.info("write data to file succeed and size is:" + writeLen); fs.closeSync(file); let result = await filePreview.canPreview(context, uri); // 传入uri,判断是否可预览 if (result) { let previewInfo: filePreview.PreviewInfo = { title: this.fileName, uri: uri, mimeType: 'text/plain' } filePreview.openPreview(getContext(this), previewInfo); // 打开预览 } else { promptAction.showToast({ // 不可预览 message: '文件不可预览' }); } }) Button('openPreview2') .onClick(async () => { let context = getContext(this); let fileDir = context.filesDir; // 获取沙箱路径 let filePath = fileDir + '/' + this.fileName; let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE | fs.OpenMode.TRUNC); // 创建文件 let uri = fileUri.getUriFromPath(filePath); // 获取uri let str: string = "xxxx, xxxxxxxxxxxxxxxxxx"; let writeLen = fs.writeSync(file.fd, str); // 写入文件 console.info("write data to file succeed and size is:" + writeLen); fs.closeSync(file); let result = await filePreview.canPreview(context, uri); // 传入uri,判断是否可预览 if (result) { let previewInfo: filePreview.PreviewInfo = { title: this.fileName, uri: uri, mimeType: 'text/plain' } filePreview.openPreview(getContext(this), previewInfo); // 打开预览 } else { promptAction.showToast({ // 不可预览 message: '文件不可预览' }); } }) } .width('100%') } .height('100%') } }
示例参考如下: