微信小程式授權過程

Zxf_xcn發表於2020-10-09

首先詢問使用者是否同意授權,同意則直接授權,否則彈框提示使用者沒有授權將影響後續操作。引導使用者去設定頁開啟授權wx.openSetting

wx.getSetting({
    success(res) {
        //沒有許可權,發起授權
        if (!res.authSetting['scope.writePhotosAlbum']) {
            wx.authorize({
                scope: 'scope.writePhotosAlbum',
                success() {
                    //使用者允許授權,儲存圖片到相簿
                    that.chooseImg()
                },
                fail(err) {
                    //使用者點選拒絕授權,跳轉到設定頁,引導使用者授權
                    that.showSettingToast()
                }
            });
        } else {
            //使用者已授權,儲存到相簿
            that.chooseImg()
        }
    }
});

// 開啟許可權設定頁提示框
showSettingToast(e) {
    wx.showModal({
        content: '檢測到您沒開啟此小程式的此許可權,是否去設定開啟?',
        confirmText: "確認",
        cancelText: "取消",
        success: function(res) {
            //點選“確認”時開啟設定頁面
            if (res.confirm) {
                wx.openSetting({
                    success: (res) => {}
                })
            } else {
                console.log('使用者點選取消')
            }
        }
    });
},

儲存圖片到本地,儲存圖片也需要先查詢使用者是否同意儲存到本地

// 儲存圖片到本地
savePhoto() {
    let that = this
    uni.getImageInfo({
        src: that.currentItemUrl,
        success: function(res) {
            console.log(res);
            //儲存圖片
            uni.saveImageToPhotosAlbum({
                filePath: res.path,
                success(result) {
                    uni.showToast({
                        title: result
                    })
                }
            })
        }
    })
},

圖片轉為base64

imgBase64(tempPath) {
    // 轉base64
    wx.getFileSystemManager().readFile({
        filePath: tempPath, //選擇圖片chooseImage返回的相對路徑
        encoding: "base64", //這個是很重要的
        success: res => { //成功的回撥
            //返回base64格式
            let photo = res.data
            this.storeUpdatedImg(photo)

        }
    })
},

相關文章