downloadSave() {
let context = getContext(this) as common.UIAbilityContext;
let url = this.reportInfo?.tyrReport as string
let urlArr: string[] = url.split('/')
let fileName: string = Date.now()+urlArr[urlArr.length-1]
let filePath = context.filesDir + '/' + fileName;
console.log(JSON.stringify(filePath),'md---filePath')
console.log(JSON.stringify(url),'md---url')
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()}`);
fs.writeSync(file.fd, arrayBuffer);
fs.closeSync(file);
const documentSaveOptions = new picker.DocumentSaveOptions(); // 创建文件管理器选项实例
documentSaveOptions.newFileNames = [fileName]; // 保存文件名(可选)
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);
fs.writeSync(file2.fd, arrayBuffer);
fs.closeSync(file2);
let url = fileUri.getUriFromPath(filePath);
// console.log(url,'md---url')
let want: Want = {
uri: url,
type: 'application/vnd.ms-excel', // 表示待打开文件的类型
// 配置被分享文件的读写权限,例如对文件打开应用进行读写授权
flags: wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION | wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION
};
// 调用接口启动
context.startAbility(want)
.then(() => {
console.info('Succeed to invoke startAbility.md---');
})
.catch((err: BusinessError) => {
console.error(`Failed to invoke startAbility, md---code: ${err.code}, message: ${err.message}`);
});
}).catch((err: BusinessError) => {
console.error(`Invoke documentViewPicker.save failed, code is ${err.code}, message is ${err.message}`);
})
})
let failCallback = () => {
console.info('Download task fail111.');
};
downloadTask.on('fail', failCallback);
}).catch((err: BusinessError) => {
console.error(`md---2downLoadFileTask failed, code is ${err.code}, message is ${err.message}`);
});
} catch (error) {
console.error(`md---3downLoadFileTask failed, code is ${error.code}, message is ${error.message}`);
}
}
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home",
"ohos.want.action.viewData"
],
"uris": [
{
"scheme": "file",
"type": "application/vnd.ms-excel",
"linkFeature":"File0pen"//表示此URI的功能为文件打开
}
]
}
],