HarmonyOS 鸿蒙Next 文件预览(Preview Kit)

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 文件预览(Preview Kit)

文件预览失败,页面跳转ok, 但是界面显示预览失败

 
深色代码主题
复制
openPreview() {
let uiContext = getContext(this);
let displayInfo: filePreview.DisplayInfo = {
x: 100,
y: 100,
width: 800,
height: 800
};
let fileInfo: filePreview.PreviewInfo = {
title: ‘1.txt’,
uri: ‘file://path_to_rawfile_directory/1.txt’,
mimeType: ‘text/plain’
};
filePreview.openPreview(uiContext, fileInfo, displayInfo, (err) => {
if (err && err.code) {
console.error(Failed to open preview, err.code = <span class="hljs-subst">${err.code}</span>, err.message = <span class="hljs-subst">${err.message}</span>);
return;
}
console.info(‘Succeeded in opening preview’);
});
}


更多关于HarmonyOS 鸿蒙Next 文件预览(Preview Kit)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
可以参考一下:
深色代码主题
复制
import common from '@ohos.app.ability.common';
import fs from '@ohos.file.fs';
import { filePreview } from '@kit.PreviewKit';
import { BusinessError } from '@kit.BasicServicesKit';
import fileUri from '@ohos.file.fileuri';
// let timeout = 0;
let context = getContext(this) as common.UIAbilityContext;
//新建一个本地应用文件
let filesDir = context.filesDir;
let file = fs.openSync(filesDir + '/test.txt', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
console.log('----------filesDir:' + filesDir)
fs.writeSync(file.fd, 'upload file test');  //以同步方法将数据写入文件
fs.closeSync(file);
// 获取文件的沙箱路径
let pathInSandbox = context.filesDir + "/test.txt";
console.log('----------pathInSandbox:'+ pathInSandbox)
// 将沙箱路径转换为uri
let uri = fileUri.getUriFromPath(pathInSandbox);
console.log('-----------uri:' + uri);
let uiContext = getContext(this);
filePreview.canPreview(uiContext, uri).then((result) => {    //根据文件的uri判断文件是否可预览 传入支持的文件类型且项目存在时会返回true
  console.info('canPreview. result = ' + result);
}).catch((err: BusinessError) => {
  console.error('canPreview failed, err = ' + err.message);
})
let fileInfo: filePreview.PreviewInfo = { // 文件预览信息,包含了文件标题名、uri以及文件类型(mimeType)
  title: 'test.txt',
  uri: uri,
  mimeType: 'text/plain' // 文件(夹)的媒体资源类型,如text/plain
};
@Entry
@Component
struct FileDemo {
  @State message: string = '预览文件';
  build() {
    Row() {
      Column() {
        Button(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            filePreview.openPreview(uiContext, fileInfo).then(() => {
              console.info('openPreview success');
            }).catch((err: BusinessError) => {
              console.error('openPreview failed, err = ' + err.message);
            });
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next 文件预览(Preview Kit)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next文件预览(Preview Kit)提供了在鸿蒙系统中预览各类文件的功能,无需打开对应的原生应用即可快速查看文件内容。该Kit支持多种文件格式,包括但不限于图片、文档、音频和视频等,为用户带来更为便捷的文件管理体验。

在使用HarmonyOS鸿蒙Next文件预览Kit时,开发者可以通过调用系统提供的API接口,将需要预览的文件加载到预览组件中,系统会根据文件的类型自动选择适合的预览器进行展示。例如,对于图片文件,系统会使用图片预览器;对于文档文件,则会使用文档预览器。

此外,鸿蒙Next文件预览Kit还支持自定义预览界面和预览功能,开发者可以根据需求对预览组件进行样式和功能的定制,以满足不同场景下的使用需求。

值得注意的是,为了确保文件预览的安全性和稳定性,开发者在使用鸿蒙Next文件预览Kit时,需要遵循系统提供的安全规范和使用指南,避免进行不当的操作导致系统崩溃或数据泄露。

如果开发者在使用鸿蒙Next文件预览Kit时遇到任何问题,可以参考官方文档或相关教程进行排查和解决。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部