這篇文章將為大家詳細講解有關小程序中如何將base64圖片保存到相冊中的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一、授權獲取
1、相關api
wx.getSetting
wx.authorize
2、授權獲取流程一般為
是否有該權限 ——> 若無 ——> 調起授權彈窗 ——> 同意 ——> 使用相關api
(如果用戶拒絕授權則可使用wx.opensetting引導用戶前往授權設置頁授權)
3、代碼實現(xiàn)
static async weAuthCheck(type = 'address') { let resGetting = await new Promise((resolve, reject) => { wepy.getSetting({ success: res => { // console.log(res, 'getsetting') if (res.authSetting.hasOwnProperty(`scope.${type}`) && res.authSetting[`scope.${type}`]) { resolve({ succeeded: true }) } else { wepy.authorize({ scope: `scope.${type}`, success: () => { resolve({ succeeded: true }) }, fail: err => { // console.log(err, 'errrrr') resolve({ succeeded: false, err: err }) } }) } }, fail: err => { resolve({ succeeded: false, err: err }) } }) }) console.log('getSetting res: \n', resGetting) return resGetting }
二、寫入臨時文件
1、相關api
文件系統(tǒng)
writeFile
2、參數(shù)encoding 用于說明 寫入的參數(shù)data的格式是什么,并非是將data按encoding的形式寫入。在這里我們應該指定encoding為base64
3、代碼實現(xiàn)
// 先獲得一個實例 this.fileManager = wx.getFileSystemManager() this.fileManager.writeFile({ filePath: `${wx.env.USER_DATA_PATH}/qrcode_${timestamp}.png`, data: data, encoding: 'base64', success: res => { console.log('res: \n:', res) }, fail: res => { console.log(res) } })
三、格式化字符串
1、base64字符串的格式: "data:image/png;base64,...........",逗號前面這一段為格式說明,用于說明后續(xù)的內容格式是圖片格式為png的base64格式。
2、如果直接將整一串字符傳入,雖然可以保存成功,但是將導致圖片文件格式錯誤。因此再做一步切割操作
let startIdx = this.qrcode.indexOf('base64,') + 7
四、完整實現(xiàn)
async onTapSaveQrcode() { let startIdx = this.qrcode.indexOf('base64,') + 7 let resCheck = await this.$weAuthCheck('writePhotosAlbum') let timestamp = new Date().getTime() let self = this if (resCheck.succeeded) { wepy.showLoading() this.fileManager.writeFile({ filePath: `${wx.env.USER_DATA_PATH}/qrcode_${timestamp}.png`, data: this.qrcode.slice(startIdx), encoding: 'base64', success: res => { console.log('res: \n:', res) wx.saveImageToPhotosAlbum({ filePath: `${wx.env.USER_DATA_PATH}/qrcode_${timestamp}.png`, success: res => { self.$emit('save-qrcode-success') wepy.showToast({ title: '保存成功' }) }, fail: err => { console.log(err) if (!err.errMsg.includes('cancel')) { wepy.showToast({ title: err.errMsg, icon: 'none' }) } }, complete: () => { wepy.hideLoading() } }) }, fail: res => { wepy.hideLoading() console.log(res) } }) } }
關于“小程序中如何將base64圖片保存到相冊中的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
網站標題:小程序中如何將base64圖片保存到相冊中的方法-創(chuàng)新互聯(lián)
文章路徑:http://chinadenli.net/article38/ehopp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站維護、域名注冊、標簽優(yōu)化、外貿建站、網站策劃、軟件開發(fā)
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容