HarmonyOS 鸿蒙Next webview 中h5 保存网络图片到相册 下载excel格式的文件需要调用什么方法
HarmonyOS 鸿蒙Next webview 中h5 保存网络图片到相册 下载excel格式的文件需要调用什么方法
webview 中h5 保存网络图片到相册, 下载excel格式的文件需要调用什么方法
2 回复
当前下载保存可以参考以下demo:
// 下载保存
downloadSave() {
let context = GlobalContext.getContext().getObject("UIAbilityContext") as common.UIAbilityContext
let filePath = context.filesDir + "/test5.xlsx";
let url = "http://****YdExcel/20240605173655470PC%E8%BF%90%E5%8D%95%E7%AE%A1%E7%90%86.xlsx"
try {
request.downloadFile(context, { url: url, filePath: filePath }).then((data: request.DownloadTask) => {
let downloadTask: request.DownloadTask = data;
downloadTask.on('complete', () => {
console.info('download complete');
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let arrayBuffer = new ArrayBuffer(4096000);
let readLen = fs.readSync(file.fd, arrayBuffer);
let buf = buffer.from(arrayBuffer, 0, readLen);
console.info(`content of File: ${buf.toString()}`);
let writeLen = fs.writeSync(file.fd, arrayBuffer);
fs.closeSync(file);
const documentSaveOptions = new picker.DocumentSaveOptions();
// 创建文件管理器选项实例
documentSaveOptions.newFileNames = ["1.xlsx"];
// 保存文件名(可选)
documentSaveOptions.fileSuffixChoices = ['xlsx'];
// 保存文件类型(可选)
let uris: Array<string> = [];
const documentViewPicker = new picker.DocumentViewPicker();
// 创建文件选择器实例
documentViewPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => {
uris = documentSaveResult;
console.info('documentViewPicker.save to file succeed and uris are:' + uris);
let uri = uris[0];
let file2 = fs.openSync(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let writeLen2 = fs.writeSync(file2.fd, arrayBuffer);
fs.closeSync(file2);
}).catch((err: BusinessError) => {
console.error(`Invoke documentViewPicker.save failed, code is ${err.code}, message is ${err.message}`);
})
})
let failCallback = () => {
console.info('Download task fail.');
};
downloadTask.on('fail', failCallback);
}).catch((err: BusinessError) => {
console.error(`downLoadFileTask failed, code is ${err.code}, message is ${err.message}`);
});
} catch (error) {
console.error(`downLoadFileTask failed, code is ${error.code}, message is ${error.message}`);
}
}
更多关于HarmonyOS 鸿蒙Next webview 中h5 保存网络图片到相册 下载excel格式的文件需要调用什么方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next webview中,处理H5页面保存网络图片到相册及下载Excel格式文件的操作,主要依赖鸿蒙系统提供的API接口。
-
保存网络图片到相册:
- 使用
MediaStore
API进行图片保存。首先,通过HTTP请求获取图片数据,然后利用BitmapFactory
将图片数据转换成Bitmap
对象。接着,使用MediaStore.Images.Media.insertImage
方法将Bitmap
对象保存到设备相册中。
- 使用
-
下载Excel格式的文件:
- 调用
DownloadManager
API下载文件。首先,通过HTTP请求获取Excel文件的URL,然后构建DownloadManager.Request
对象,并设置文件的URL、存储位置(如公共下载目录)、文件名称(带.xlsx
后缀)等信息。最后,调用DownloadManager
的enqueue
方法开始下载。
- 调用
注意,实际操作中需要处理权限问题,如读写存储权限,以及处理下载和保存过程中可能出现的异常。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html