|
導讀微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一... 微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。 本篇文章給大家帶來的內容是關于小程序中將base64圖片保存到相冊中的方法介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。一、授權獲取 1、相關api 2、授權獲取流程一般為 3、代碼實現 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 2、參數encoding 用于說明 寫入的參數data的格式是什么,并非是將data按encoding的形式寫入。在這里我們應該指定encoding為base64 3、代碼實現 // 先獲得一個實例 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,...........",逗號前面這一段為格式說明,用于說明后續的內容格式是圖片格式為png的base64格式。 2、如果直接將整一串字符傳入,雖然可以保存成功,但是將導致圖片文件格式錯誤。因此再做一步切割操作 let startIdx = this.qrcode.indexOf('base64,') + 7四、完整實現 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圖片保存到相冊中的方法介紹的詳細內容,更多請關注php中文網其它相關文章! 小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。 |
溫馨提示:喜歡本站的話,請收藏一下本站!