小程序模板網(wǎng)

微信小程序無法保存圖片提示saveImageToPhotosAlbum:fail file not found ...

發(fā)布時(shí)間:2020-05-13 10:09 所屬欄目:小程序開發(fā)教程

最近項(xiàng)目中遇到一個(gè)需求,就是要保存商品的圖片到手機(jī)相冊,一開始我還以為挺簡單的,畢竟文檔在哪里,小程序一般都是拿來就用的,可是這個(gè)就是不行,遇到提示saveImageToPhotosAlbum:fail file not found問題,最后發(fā)現(xiàn)是用戶沒有授權(quán)。解決這個(gè)問題又發(fā)現(xiàn)小程序又無法保存圖片,這明明是同意了為什么還不行,經(jīng)過研究發(fā)現(xiàn),我沒要先獲取圖片信息在進(jìn)行保存就可以了。我使用的是uni-app來開發(fā)的,如果你用原生小程序開發(fā)的話就把uni改成wx吧!在這里我強(qiáng)烈推薦大家使用uni-app來開發(fā)小程序。具體什么好處,大伙可以去看看uni-app的文檔,好了不多說看代碼。

/* 如果是這么寫的,可以不使用button設(shè)置open-type屬性*/
/* 判斷是否授權(quán) */
uni.authorize({
    /* 這個(gè)就是保存相冊的 */
    scope: 'scope.writePhotosAlbum',
    success() {
        /* 保存圖片方法 */
        img();
    },
    complete(res) {
        console.log(res);
        /* 這里判斷一下如果沒有授權(quán)重新打開設(shè)置選項(xiàng) */
        uni.getSetting({
            success(res) {
                if (!res.authSetting['scope.writePhotosAlbum']) {
                    /* 打開設(shè)置的方法 */
                    opensit();
                }
            }
        });
    }
});
/* 授權(quán)提示 ,這里就是重復(fù)提示用戶去授權(quán)*/
function opensit() {
    uni.showModal({
        content: '由于您還沒有允許保存圖片到您相冊里,這無法進(jìn)行分享操作點(diǎn)擊確定去允許授權(quán)',
        success: function(res) {
            if (res.confirm) {
                /* 這個(gè)就是打開設(shè)置的API*/
                uni.openSetting({
                    success(res) {
                        console.log(res.authSetting);
                    }
                });
            } else if (res.cancel) {
                uni.showModal({
                    cancelText: '依然取消',
                    confirmText: '重新授權(quán)',
                    content: '很遺憾你點(diǎn)擊了取消,這將無法進(jìn)行分享操作,請慎重考慮',
                    success: function(res) {
                        if (res.confirm) {
                            uni.openSetting({
                                success(res) {
                                    console.log(res.authSetting);
                                }
                            });
                        } else if (res.cancel) {
                            console.log('用戶不授權(quán)');
                        }
                    }
                });
            }
        }
    });
}
/* 特別注意要先獲取圖片信息在進(jìn)行保存,不讓保存不了 */
function img() {
/* 我這里要保存多張圖片,一張的話就可以取消這些,具體看你的需求 */
    if (num > len) {
        return false;
    }
    /* 獲取圖片信息 */
    uni.getImageInfo({
        src: obj[num],
        success: function(image) {
            console.log(image);
            /* 保存圖片到相冊 */
            uni.saveImageToPhotosAlbum({
                filePath: image.path,
                success: function() {
                    console.log('save success');
                    if (num == len) {
                        uni.showModal({
                            title: '保存成功',
                            content: '圖片已成功保存到相冊,快去分享到您的圈子吧',
                            showCancel: false
                        });
                    }
                },
                complete(res) {
                    console.log(res);
                }
            });
        }
    });
    num++;
    img();
}
 


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://22321a.com/wxmini/doc/course/25136.html 復(fù)制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢