在使用这个方法下载文件下载1次或多次后再下载就没反应了,在uni.downloadFile()中console.log()就没有动静,会直接跳过这个方法
/** 打开文件
* fileUrl 文件路径
* fileInfo 文件信息
* */
function openFile(fileUrl, fileInfo = []) {
// 判断是否为网络文件
if (fileUrl.indexOf('http://') == -1 && fileUrl.indexOf('https://') == -1) { //本地文件直接打开
uni.openDocument({
filePath: fileUrl,
success: function(res) {
console.log('打开文档成功', res);
},
fail: function(err) {
console.log('打开文档失败', err);
return uni.showToast({
title: '文档打开失败!',
icon: 'none'
})
}
});
} else { //网络文件需下载
console.log('2', fileUrl)
let userName = localStorage.getItem('user_name');
let list = localStorage.getItem(userName + '-downloadList');
list = list && list != undefined ? JSON.parse(list) : [];
if (list.length) {
for (let i = 0; i < list.length; i++) {
let item = list[i];
if (item.networkFileUrl == fileUrl) {
console.log('文件已下载')
return openFile(item.offlineFileUrl);
}
}
}
uni.downloadFile({
url: encodeURI(fileUrl),
success: function(res) {
console.log('下载文件', res)
if (res.statusCode === 200) {
uni.saveFile({
tempFilePath: res.tempFilePath,
success: function(res2) {
let path = res2.savedFilePath; //永久路径
/*let fileItem = {
fileName: fileInfo.fileName ? fileInfo.fileName : fileInfo.reportName,
networkFileUrl: fileInfo.fileUrl,
offlineFileUrl: path
};
saveFileInfo(fileItem);*/
console.log('保存文件', res2)
uni.openDocument({
filePath: path,
success: function(res) {
console.log('打开文档成功', res);
},
fail: function(err) {
console.log('打开文档失败', err)
return uni.showToast({
title: '文档打开失败!',
icon: 'none'
})
}
});
}
})
} else {
removeDownloadFile(res.tempFilePath)
return uni.showToast({
title: '文件下载失败',
icon: 'none'
});
}
},
fail: function(err) {
console.log(err)
return uni.showToast({
title: '文件下载失败',
icon: 'none'
});
}
})
console.log(‘-------------------’)
}
}
天机不可泄露 (作者)
没有解决,改用了 office文档在线预览 插件
2020-05-19 22:15
7***@qq.com
回复 天机不可泄露: 我是做的视频下载,下了一次函数就不执行了
2020-05-20 09:15