微信小程序保存多张图片的实现方法


Posted in Javascript onMarch 05, 2019

前言

使用promise 队列,保存多张图片到手机相册

问题:有些手机会出现只能保存五张图片,报错信息:无法写入

promise需要好好学习

核心代码

// pages/saveImgs/index.js
import { writePhotosAlbum } from '../../utils/util'
Page({
 /**
  * 页面的初始数据
  */
 data: {
  list: [
   'https://timgs.top1buyer.com/admin/special/special_img_20190301160008479.jpg',
   'https://timgs.top1buyer.com/admin/special/special_img_20190301160013201.jpg',
   'https://timgs.top1buyer.com/admin/special/special_img_20190301160015969.jpg',
   'https://timgs.top1buyer.com/admin/special/special_img_20190301160025498.jpg',
   'https://timgs.top1buyer.com/admin/special/special_img_20190301160031519.jpg',
   'https://timgs.top1buyer.com/admin/special/special_img_20190301160042689.jpg',
   'https://timgs.top1buyer.com/admin/special/special_img_20190301160108243.jpg',
   'https://timgs.top1buyer.com/admin/special/special_img_20190301160111756.jpg',
   'https://timgs.top1buyer.com/admin/special/special_img_20190304160141454.jpg'
  ],
  loading:false
 },

 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function(options) {},
 // 下载图片
 downloadImgs() {
  var _this = this
  // 获取保存到相册权限
  writePhotosAlbum(
   function success() {
    wx.showLoading({
     title: '加载中',
     mask: true
    })
    // 调用保存图片promise队列
    _this
     .queue(_this.data.list)
     .then(res => {
      wx.hideLoading()
      wx.showToast({
       title: '下载完成'
      })
     })
     .catch(err => {
      wx.hideLoading()
      console.log(err)
     })
   },
   function fail() {
    wx.showToast({
     title: '您拒绝了保存到相册'
    })
   }
  )
 },
 // 队列
 queue(urls) {
  let promise = Promise.resolve()
  urls.forEach((url, index) => {
   promise = promise.then(() => {
    return this.download(url)
   })
  })
  return promise
 },
 // 下载
 download(url) {
  return new Promise((resolve, reject) => {
   wx.downloadFile({
    url: url,
    success: function(res) {
     var temp = res.tempFilePath
     wx.saveImageToPhotosAlbum({
      filePath: temp,
      success: function(res) {
       resolve(res)
      },
      fail: function(err) {
       reject(res)
      }
     })
    },
    fail: function(err) {
     reject(err)
    }
   })
  })
 }
})

微信小程序保存多张图片的实现方法

项目案例

github地址

git clone https://github.com/sunnie1992/soul-weapp.git

直接用微信小程序开发工具打开就可以看到案例了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js创建数据共享接口——简化框架之间相互传值
Oct 23 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
Aug 15 Javascript
jquery append与appendTo方法比较
May 24 jQuery
使用vue和datatables进行表格的服务器端分页实例代码
Jun 07 Javascript
vue与TypeScript集成配置最简教程(推荐)
Oct 17 Javascript
微信小程序的生命周期的详解
Oct 19 Javascript
springmvc接收jquery提交的数组数据代码分享
Oct 28 jQuery
tween.js缓动补间动画算法示例
Feb 13 Javascript
Vue.js实现可配置的登录表单代码详解
Mar 29 Javascript
JavaScript实现好看的跟随彩色气泡效果
Feb 06 Javascript
js实现选项卡效果
Mar 07 Javascript
基于VSCode调试网页JavaScript代码过程详解
Jul 20 Javascript
JS添加或删除HTML dom元素的方法实例分析
Mar 05 #Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
Mar 05 #Javascript
es6数据变更同步到视图层的方法
Mar 04 #Javascript
使用webpack构建应用的方法步骤
Mar 04 #Javascript
详解element-ui中form验证杂记
Mar 04 #Javascript
JS使用数组实现的队列功能示例
Mar 04 #Javascript
JS使用栈判断给定字符串是否是回文算法示例
Mar 04 #Javascript
You might like
PHP出错界面
2006/10/09 PHP
php获取汉字首字母的函数
2013/11/07 PHP
PHP修改session_id示例代码
2014/01/08 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
Python程序设计入门(1)基本语法简介
2014/06/13 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
Python操作SQLite数据库的方法详解
2017/06/16 Python
Python函数中不定长参数的写法
2019/02/13 Python
python如何制作缩略图
2019/04/30 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
Python上下文管理器全实例详解
2019/11/12 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
详细分析Python垃圾回收机制
2020/07/01 Python
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
毕业生自荐信的主要内容
2013/10/29 职场文书
成绩单家长评语大全
2014/04/16 职场文书
政府信息公开实施方案
2014/05/09 职场文书
新书发布会策划方案
2014/06/09 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
nginx lua 操作 mysql
2022/05/15 Servers
Java Redisson多策略注解限流
2022/09/23 Java/Android