HarmonyOS 鸿蒙Next有支持下载远端word和excel或者pdf格式的文件 并保存在公共目录的API吗
HarmonyOS 鸿蒙Next有支持下载远端word和excel或者pdf格式的文件 并保存在公共目录的API吗 鸿蒙有支持下载远端Word和Excel或者PDF格式的文件,并保存在公共目录的API吗?
需要先下载到沙箱目录然后再保存到文件管理器,可参考以下demo。
参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/save-user-file-V13#保存文档类文件
import common from '@ohos.app.ability.common';
import request from '@ohos.request';
import { BusinessError } from '@ohos.base';
import picker from '@ohos.file.picker';
import fs from '@ohos.file.fs';
// 获取应用文件路径
let context = getContext(this) as common.UIAbilityContext;
let filesDir = context.filesDir;
@Entry
@Component
export struct Index1 {
@State message: string = 'Hello World';
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button('下载')
.onClick(async () => {
try {
console.log('downloadTask1 filesDir 00sg00izg3.jpg');
//下载文件
request.downloadFile(context, {
url: 'https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F1108%2Fea454272j00s3rxox001tc000sg00izg.jpg&thumbnail=660x2147483647&quality=80&type=jpg',
filePath: filesDir + '/00sg00izg3.jpg'
}).then((downloadTask: request.DownloadTask) => {
//开启回调
downloadTask.on('complete', () => {
console.info('downloadTask1 complete');
})
}).catch((err: BusinessError) => {
console.error("error:", err.message);
});
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(err.message);
}
})
.width('100%')
Button('保存')
.onClick(async () => {
try {
let uris: String = "";
try {
const photoSaveOptions = new picker.PhotoSaveOptions(); // 创建文件管理器保存选项实例
photoSaveOptions.newFileNames = ["PhotoViewPicker01.png"]; // 保存文件名(可选),方括号里的文件名自定义,每次不能重复,设备里已有这个文件的话,名字就需要改个不一样的,不然接口会报错
const photoViewPicker = new picker.PhotoViewPicker();
try {
let photoSaveResult = await photoViewPicker.save(photoSaveOptions);
if (photoSaveResult != undefined) {
uris = photoSaveResult[0];
console.info('photoViewPicker.save to file succeed and uris are:' + uris);
}
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(`[picker] Invoke photoViewPicker.save failed, code is ${err.code}, message is ${err.message}`);
}
} catch (error) {
let err: BusinessError = error as BusinessError;
console.info("[picker] photoViewPickerSave error = " + JSON.stringify(err));
}
try{
let path = getContext().filesDir+"/00sg00izg3.jpg" //需要保存的图片的路径
console.info("1111:::" + path);
let file = fs.openSync(path)
let file2 = fs.openSync(uris+"",fs.OpenMode.READ_WRITE)
fs.copyFileSync(file.fd,file2.fd)
fs.closeSync(file)
fs.closeSync(file2)
}catch (error) {
let err: BusinessError = error as BusinessError;
console.error(`[picker] Invoke photoViewPicker.save failed, code is ${err.code}, message is ${err.message}`);
}
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(err.message);
}
})
}
}
}
}
更多关于HarmonyOS 鸿蒙Next有支持下载远端word和excel或者pdf格式的文件 并保存在公共目录的API吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙Next支持下载远端word、excel或pdf格式文件并保存在公共目录的API
HarmonyOS 鸿蒙Next系统确实提供了相关的API来支持下载远端文件并将其保存在设备的公共目录中。具体而言,你可以通过鸿蒙系统提供的网络请求API(如HTTP或HTTPS请求)来下载远端的word、excel或pdf文件。下载完成后,你可以利用文件系统的API将这些文件保存到指定的公共目录。
在鸿蒙系统中,公共目录通常指的是设备存储中用户可访问的共享区域,例如“Downloads”文件夹。你可以通过鸿蒙的文件管理API来定位这个目录,并将下载的文件移动或复制到该目录下。
需要注意的是,进行文件下载和保存操作时,你的应用需要具备相应的权限。例如,网络访问权限、读写外部存储权限等。这些权限需要在应用的manifest文件中声明,并在运行时向用户请求。
此外,鸿蒙系统还提供了丰富的API来处理不同类型的文件,包括打开、编辑和预览word、excel和pdf文件等。你可以根据具体需求选择合适的API来实现相应的功能。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html