TIP
用uniapp或h5+开发的app下载的文件,在手机文件管理器里面无法在最近文件等直接展示出来,经研究,将文件移动到系统公共目录可解决此问题。
WARNING
这里只列举android。且android11对存储分区更严格,没测试
js
/**
* 移动文件到某个目录
* @param {String} src 文件路径 可以是相对路径、绝对路径
* @param {String} dirctory 目标目录 '_downloads/' 'file:///storage/emulated/0/Download/'
*/
function moveFileToPublic(src, dirctory){
return new Promise((resolve, reject) => {
// 获取被移动的文件对象
plus.io.resolveLocalFileSystemURL(src, function(entry){
// 获取目标目录对象
plus.io.resolveLocalFileSystemURL(dirctory, function(parent){
console.log('resolve parent success');
// 移动文件
entry.moveTo(parent, entry.name,function(moveEntry){
console.log('move success'+moveEntry.fullPath)
resolve(moveEntry.fullPath);
},function(err){
console.log(err)
console.log('move fail')
reject(err)
})
},
function(err){
console.log('resolve parent fail');
console.log(err);
reject(err)
})
},function(err){
console.log('resolve Fail');
console.log(err);
reject(err)
})
})
}
参考资料: