HarmonyOS 鸿蒙Next 文件下载,预览

发布于 1周前 作者 yibo5220 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 文件下载,预览

你好,我这边下载文件保存到cacheDir目录下,此时需要预览,应该怎么传这个路径呢 filePath = getContext(this).cacheDir + params.fileName;

2 回复

您可以使用如下代码

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://docs/storage/Users/currentUser/Documents/1.txt',
  mimeType: 'text/plain'
};
filePreview.openPreview(uiContext, fileInfo, displayInfo).then(() => {
  console.info('Succeeded in openPreview');
}).catch((err: BusinessError) => {
  console.error(`Failed to openPreview, err.code = ${err.code}, err.message = ${err.message}`);
});

可以参考此文档

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/preview-filepreview-V13

可参考此demo

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 cachedir = context.cacheDir; let file = fs.openSync(cachedir + ‘/test.txt’, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); console.log(’----------filesDir:’ + cachedir) fs.writeSync(file.fd, ‘upload file test’); //以同步方法将数据写入文件 fs.closeSync(file); // 获取文件的沙箱路径 let pathInSandbox = cachedir + “/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 Index { @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 文件下载,预览的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,文件下载与预览功能可以通过以下方式实现:

文件下载

  1. 使用系统提供的DownloadManager API进行文件下载。该API支持断点续传和多任务下载,开发者只需配置好下载任务的相关参数(如URL、保存路径等)即可启动下载。

  2. 监听下载状态,通过回调接口获取下载进度、是否成功等信息。

  3. 下载完成后,系统会将文件保存到指定的存储路径中。

文件预览

  1. 对于常见的文档类型(如PDF、TXT等),可以直接使用系统内置的预览组件进行查看。

  2. 对于图片和音视频文件,可以使用系统提供的媒体预览组件进行播放或展示。

  3. 如果需要预览特定格式的文件(如CAD图纸等),则需要集成第三方库或开发自定义的预览组件。

  4. 在预览过程中,可以通过手势操作(如滑动、缩放等)来浏览文件内容。

请注意,以上操作均需在HarmonyOS应用框架下进行,并遵守系统的权限管理策略。确保应用已获取必要的存储和文件访问权限。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部