项目需要要做个下载功能,下载PDF版发票并保存在本地文件中。
下载文件:用uni.downloadFile或wx.downloadFile下载文件,拿到返回文件的本地临时路径。
保存文件:
1.IOS端
ios不能直接下载在本地,需用用户自己复制下载链接,后在Safari浏览器中预览下载。js功能代码如下:文章来源:https://www.toymoban.com/news/detail-763867.html
//先弹窗提醒用户复制链接
uni.showModal({
title: '复制发票链接',
content: '请点击确定,复制发票链接,在Safari浏览器中预览下载',
showCancel: false,
success: function (res) {
if (res.confirm) {
this.copyLink(item)
}
}
});
//复制链接
copyLink(item){
uni.setClipboardData({
data: item, // 要复制的路径
success: function(res) {
uni.getClipboardData({
success: function(data) {
uni.showToast({
title: '复制成功'
});
},
fail: function(data1) {
console.log(data1,'复制回调');
}
});
}
});
}
2.安卓端
存储文件的话,建议使用FileSystemManager对象中的方法,旧的uni.saveFile不维护了。
FileSystemManager是微信小程序文件管理器,通过 wx.getFileSystemManager 获取。但是保存文件后,返回的存储后的文件路径 (本地路径)格式是wxfile://store_eXXXXXXX,很难找到,在网上看华为手机存储的路径有三个,三个路径“tencent/MicroMsg/WeiXin”、“tencent/MicroMsg/Download”、“Android/data/com.tencent.mm/MicroMsg/Download”,在手机上没找到,所以用了别的方法。
方法:使用wx.getFileSystemManager().saveFile下载文件,再使用wx.openDocument()打开文件,配置一定要加上showMenu字段,这样打开预览的文件右上角就会出现···,点击···即可保存文件。这样文件会直接保存在手机下载管理器中,非常容易找到。
具体使用的js功能代码如下:文章来源地址https://www.toymoban.com/news/detail-763867.html
uni.downloadFile({
url: item,// 文档地址
success: (data) => {
if (data.statusCode == 200) {
wx.getFileSystemManager().saveFile({
tempFilePath: data.tempFilePath, //临时路径
success: function (res) {// 保存路径
wx.openDocument({
filePath: res.savedFilePath,
showMenu: true,
success: function(res) {
},
fail(error) {}
})
}
});
}
}, fail: (err) => {
showToast("失败请重新下载" )
},
});
到了这里,关于小程序下载PDF文件并保存在本地(适用IOS安卓)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!