• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網絡科技有限公司!
    電話圖標 余先生:13699882642

    網站百科

    為您解碼網站建設的點點滴滴

    小程序保存多張圖片(優化版)

    發表日期:2019-11 文章編輯:小燈 瀏覽次數:5376

    前言

    之前寫個一個版本的[多圖下載],重構進行了代碼升級讓代碼更加簡介
    分為兩步:
    第一獲取保存到相冊權限
    第二下載圖片
    主要涉及兩個文件,index.js 和download.js
    另外現在如果有圖片下載失敗也彈出下載完成后續需要優化

    核心代碼

    /**
     *  獲取相冊權限
     */
    export function wxSaveAuth() {
        return new Promise((resolve, reject) => {
            wx.getSetting({
                success(res) {
                    if (!res.authSetting['scope.writePhotosAlbum']) {
                        // 如果沒有寫入權限,則獲取寫入相冊權限
                        wx.authorize({
                            scope: 'scope.writePhotosAlbum',
                            success() {
                                resolve()
                            },
                            fail(err) {
                                reject(err)
                                // 用戶拒絕授權
                                wx.showModal({
                                    content: '檢測到您沒打開捷買士的相冊權限,是否去設置打開?',
                                    confirmText: '確認',
                                    cancelText: '取消',
                                    success(res) {
                                        if (res.confirm) {
                                            wx.openSetting({
                                                success: res => {}
                                            })
                                        }
                                    }
                                })
                            }
                        })
                    } else {
                        resolve()
                    }
                },
                fail(e) {
                    reject(e)
                }
            })
        })
    }
    
    /**
     * 多文件下載并且保存 
     * @param {Array} urls 網絡圖片數組
     */
    export function downloadImgs(urls) {
        wx.showLoading({
            title: '圖片下載中',
            mask: true
        })
        const imageList = []
        // 循環數組
        for (let i = 0; i < urls.length; i++) {
            imageList.push(getTempPath(urls[i]))
        }
        const loadTask = []
        let index = 0
        while (index < imageList.length) {
            loadTask.push(
                new Promise((resolve, reject) => {
                    // 將數據分割成多個promise數組
                    Promise.all(imageList.slice(index, (index += 8)))
                        .then(res => {
                            resolve(res)
                        })
                        .catch(err => {
                            reject(err)
                        })
                })
            )
        }
        // Promise.all 所有圖片下載完成后彈出
        Promise.all(loadTask)
            .then(res => {
                wx.showToast({
                    title: '下載完成',
                    duration: 3000
                })
            })
            .catch(err => {
                wx.showToast({
                    title: `下載完成`,
                    icon: 'none',
                    duration: 3000
                })
            })
    }
    /**
     *
     * @param {String} url 單張網絡圖片
     */
    //下載內容,臨時文件路徑
    function getTempPath(url) {
        return new Promise((resolve, reject) => {
            wx.downloadFile({
                url: url,
                success: function(res) {
                    var temp = res.tempFilePath
                    wx.saveImageToPhotosAlbum({
                        filePath: temp,
                        success: function(res) {
                            return resolve(res)
                        },
                        fail: function(err) {
                            reject(url + JSON.stringify(err))
                        }
                    })
                },
                fail: function(err) {
                    reject(url + JSON.stringify(err))
                }
            })
        })
    }
    
    // pages/save-imgs/index.js
    import { wxSaveAuth, downloadImgs } from '../../utils/download'
    Page({
        /**
         * 頁面的初始數據
         */
        data: {
            urls: [
                 'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
                 'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
                 'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
                 'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
                 'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
                 'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
                 'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4',
                 'https://avatars0.githubusercontent.com/u/35954879?s=120&v=4'
        
            ]
        },
    
        /**
         * 生命周期函數--監聽頁面加載
         */
        onLoad: function(options) {},
    
        download() {
            // 獲取保存到相冊權限
            wxSaveAuth().then(res => {
                // 保存多張圖片到相冊
                downloadImgs(this.data.urls)
            })
        },
     
    })
    

    項目案例

    github地址

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

    掃描添加下方的微信并備注 Sol 加交流群,交流學習,及時獲取代碼最新動態。

    如果對你有幫助送我一顆小星星(づ ̄3 ̄)づ╭?~


    本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.juherenli.com/25257.html
    相關小程序
     八年  行業經驗

    多一份參考,總有益處

    聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

    咨詢相關問題或預約面談,可以通過以下方式與我們聯系

    業務熱線:余經理:13699882642

    Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

    国产精品免费久久久久电影网| 91精品国产麻豆国产自产在线 | 久久精品夜色国产亚洲av| 青青草99热这里都是精品| 在线播放国产精品| 无码国产69精品久久久久网站| 亚洲性日韩精品国产一区二区| 国产精品女主播自在线拍| 久久精品国产亚洲AV大全| 亚洲韩国精品无码一区二区三区| 日本精品视频在线观看| 精品久久久无码人妻字幂| 2021国产精品视频| 97精品久久天干天天蜜| 久久午夜精品视频| 国产精品毛片无遮挡| 久久久精品视频免费观看| 无码精品久久一区二区三区 | 91久久精品91久久性色| 日本精品久久久久久久久免费| 国产精品久久国产精麻豆99网站| 精品国产污污免费网站aⅴ| 色久综合网精品一区二区| 日韩精品久久久久久| 国产成人精品综合久久久久| 国产精品美女久久久网AV| 日本精品视频在线观看| 国产在线精品观看一区| 精品久久国产字幕高潮| 视频久re精品在线观看| 日韩精品视频在线观看免费 | 99久久亚洲精品无码毛片| 亚洲av午夜成人片精品网站| 国产精品内射后入合集| 国产精品天干天干综合网| 国产亚洲精品美女久久久| 自拍偷在线精品自拍偷| 国内揄拍高清国内精品对白| 自拍偷自拍亚洲精品情侣| 91精品国产高清91久久久久久| 久久精品国产精品亚洲人人 |