平台兼容性
hx_uniapp_img-downloader
这是 HBuilerX
的插件, 使用环境为 uni-app
。
将网络或项目中的图片下载到本地 兼容 h5
小程序
app
。
背景
前段时间在做的一个项目,看视频学习,学习完成后会生成图片证书,然后点击可以下载保存到本地。
感觉这个功能也挺常用的,这两天专门详细测试了其中用到的两个方法:
uni.downloadFile
和 uni.saveImageToPhotosAlbum
,然后封装的这个插件。
希望对大家有用。
获取
github仓库: https://github.com/xiafl/hx_uniapp_img-downloader
npm安装: npm install @xfl/hx_uniapp_img-downloader
使用方法
import downloader from 'img-downloader'; //导入
let promise = downloader.load(url, imgName); //下载
promise.then(([err, res])=>{ //下载结果
console.log(err, res); // err 和 res 只会有一个存在,另一个为null
});
效果
注意事项
- 没有下载进度。
- web端会有跨域问题。
- 支持 http 或 https 开头的绝对路径, 也支持
/static/aa.png
或static/aa.png
这种项目中的相对路径。 - 不支持支付宝小程序。
- 只在 google浏览器 、 微信小程序开发者工具 、手机微信小程序 中测试过。只测试过下载图片,应该不支持下载其它文件。
- load 函数返回的是一个
promise
对象,并且一般只会回调 then , 不会回调 catch, 除非你自己在 then中写的代码报错了。 - 注意,在微信小程序中,第一次调用相册会弹出授权弹框,如果用户本次拒绝授权,则本次下载失败,并且下次再调用时,不会再弹授权框,而是直接下载失败。
- 只有在 web 端,才能重命名下载的图片的名字。
- 在 web 端,回调 then 时,其实只是 说明开始下载了,至于是否会下载成功,则是未知的。
权限
本插件需要申请的手机端权限列表:
- 系统相册权限:
scope.writePhotosAlbum
问题反馈
如在使用中发现bug或有优化的建议和意见,请发邮件 541151284@qq.com 或在 gitHub 上反馈。
更新日志
2019.6.1 v1.1.0 重构了代码、创建了 示例页面 、添加 jsDoc 注释
2019.5.10 v1.0.0 创建本插件