uni-app之微信小程序实现‘下载+保存至本地+预览’功能

目录

一、H5如何实现下载功能

二、微信小程序实现下载资源功能方面与H5有很大的不同

三、 微信小程序实现文件(doc,pdf等格式,非图片)下载(下载->保存->预览)功能

四、图片预览、保存、转发、收藏:uni.previewImage()

五、 我当前遇到‘关于文件预览uni.openDocument()’API的问题,欢迎评论区讨论


一、H5如何实现下载功能

1、是的,浏览器页面实现资源下载是非常简单的:只需要在资源外包裹一层<a href="#"></a>再往里里面添加链接就完事了!

二、微信小程序实现下载资源功能方面与H5有很大的不同

1、刚开始uni-app中做下载资源功能时,单纯以为和PC端一样,放a标签就行。

然而,用微信开发者工具打包编译出来时会报错,因为,它把a标签打包编译成了navigator标签。而该组件类似HTML中的<a>组件,但只能跳转本地页面。目标页面必须在pages.json中注册。 

2、 放a标签,运行在谷歌浏览器上,点击来接便可以下载:

3、同样的代码运行在微信开发者工具上,代码变化且报错,那是因为链接并非本地页面而是远程服务获取的图片链接。

三、 微信小程序实现文件(doc,pdf等格式

根据提供的代码,uniapp微信小程序下载图片的方法有多种实现方式。以下是其中几种常见的方法: 方法一: 可以使用uni.downloadFile()方法下载图片,然后使用uni.saveImageToPhotosAlbum()方法保存图片到本地相册。代码示例如下: ```javascript handledownload() { const that = this uni.downloadFile({ url: '图片地址', success: res => { if (res.statusCode === 200) { uni.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: function() { uni.showToast({ title: '保存成功', duration: 2000 }) }, fail: function() { uni.showToast({ title: '保存失败', duration: 2000 }) } }) } else { uni.showToast({ title: '保存失败', duration: 2000 }) } } }) } ``` 方法二: 可以使用uni.downloadFile()方法下载图片,然后使用uni.openDocument()方法打开文档来查看下载的图片。代码示例如下: ```javascript download(i) { uni.downloadFile({ url: this.mate[i].path, success: function(res) { var filePath = res.tempFilePath; uni.openDocument({ filePath: filePath, showMenu: true, success: function(res) { console.log('打开文档成功'); } }); }, fail: (err) => { console.log(err); uni.showToast({ icon: 'none', mask: true, title: '失败请重新下载' }); }, }); } ``` 方法三: 与方法二类似,可以使用uni.downloadFile()方法下载图片,然后使用uni.saveFile()方法将文件保存本地,最后使用uni.openDocument()方法打开保存的图片。代码示例如下: ```javascript download(i) { uni.downloadFile({ url: this.mate[i].path, success: function(data) { if (data.statusCode === 200) { uni.saveFile({ tempFilePath: data.tempFilePath, success: function(res) { uni.showToast({ icon: 'none', mask: true, title: '文件保存:' + res.savedFilePath, duration: 3000 }); setTimeout(() => { uni.openDocument({ filePath: res.savedFilePath, success: function(res) { console.log('打开文档成功'); } }); }, 2000); } }); } }, fail: (err) => { console.log(err); uni.showToast({ icon: 'none', mask: true, title: '失败请重新下载' }); }, }); } ``` 以上是uniapp微信小程序下载图片的几种常见实现方法。根据实际需求和代码逻辑,可以选择适合的方法进行实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [在uniapp微信小程序保存图片到本地相册](https://blog.youkuaiyun.com/jayusmazyyolk/article/details/126532923)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [uniapp下载文件 例(Word)以及下载其他文件,Word文件的转发,保存,查看](https://blog.youkuaiyun.com/weixin_56718509/article/details/124615998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值