一、base64圖片保存相冊功能
提示api:that.$refs.uToast.show用的是uview2.0的toast,可以根據(jù)具體引入的ui庫去更換;
saveBase64ImageToPhotosAlbum() {
let that = this
var timestamp = new Date().getTime();
let base64 = this.userInfo.jumpAddFriendQr.replace(/^data:image\/\w+;base64,/, ""); //去掉data:image/png;base64,
let filePath = wx.env.USER_DATA_PATH + `/addFriends_${timestamp}_qrcode.png`;
uni.showLoading({
title: '保存中',
mask: true
})
uni.getFileSystemManager().writeFile({
filePath: filePath, //創(chuàng)建一個臨時文件名
data: base64, //寫入的文本或二進制數(shù)據(jù)
encoding: 'base64', //寫入當前文件的字符編碼
success: res => {
uni.saveImageToPhotosAlbum({
filePath: filePath,
success: function(res2) {
uni.hideLoading();
that.$refs.uToast.show({
type: 'success',
message: "保存成功~",
duration: 1200,
})
},
fail: function(err) {
uni.hideLoading();
console.log(err.errMsg);
that.$refs.uToast.show({
type: 'error',
message: `保存失敗`,
duration: 1200,
})
}
})
},
fail: err => {
uni.hideLoading();
console.log(err)
that.$refs.uToast.show({
type: 'error',
message: `創(chuàng)建文件失敗`,
duration: 1200,
})
}
})
},
saveQRcodeFn() {//保存圖片到相冊按鈕的點擊事件函數(shù)
let that = this
uni.getSetting({
success(res) {
console.log(res);
if (!res.authSetting['scope.writePhotosAlbum']) {
uni.authorize({
scope: 'scope.writePhotosAlbum',
success(res) {
that.saveBase64ImageToPhotosAlbum()
},
fail() {
uni.showModal({
content: '請允許相冊權限,拒絕將無法正常保存圖片',
showCancel: false,
success() {
uni.openSetting({
success(settingdata) {
if (settingdata.authSetting['scope.writePhotosAlbum']) {} else {
console.log('獲取權限失敗')
that.$refs.uToast.show({
type: 'error',
message: `獲取權限失敗`,
duration: 1200,
})
}
}
})
}
})
}
})
} else {
that.saveBase64ImageToPhotosAlbum()
}
}
})
},
二、轉發(fā)分享base64圖片給微信好友功能?
該功能在微信開發(fā)者工具中調試的時候會一直報錯,真機是沒問題的,可能是編譯器的bug。
文章來源:http://www.zghlxwxcb.cn/news/detail-667423.html
sharePic() {//分享圖片給好友按鈕的點擊事件函數(shù)
let that = this
this.base64ToFilePath(this.userInfo.jumpAddFriendQr, (filePath) => {
console.log(filePath);
wx.showShareImageMenu({ //分享給朋友
path: filePath,
success: (res) => {
console.log("分享成功:", res);
},
fail: (err) => {
console.log("分享取消:", err);
},
})
})
},
base64ToFilePath(base64data, fun) {//封裝的base64轉換成臨時文件路徑的函數(shù)
const base64 = base64data; //base64格式圖片
const time = new Date().getTime();
const imgPath = wx.env.USER_DATA_PATH + "/addFriends" + time + "share_qrcode" + ".png"; //去掉data:image/png;base64,如果圖片字符串不含要清空的前綴,可以不執(zhí)行下行代碼.
const imageData = base64.replace(/^data:image\/\w+;base64,/, "");
const file = wx.getFileSystemManager();
file.writeFileSync(imgPath, imageData, "base64");
fun(imgPath);
},
其實整個wx.showShareImageMenu會拉起保存相冊按鈕,所以按道理也需要在調用這個api之前獲取權限。這里封裝了一下:參數(shù)fn就是獲取權限后的函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-667423.html
getAuth(fn) {
let that = this
uni.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) {
uni.authorize({
scope: 'scope.writePhotosAlbum',
success(res) {
fn()
},
fail() {
uni.showModal({
content: '請允許相冊權限,拒絕將無法正常保存圖片',
showCancel: false,
success() {
uni.openSetting({
success(settingdata) {
if (settingdata.authSetting['scope.writePhotosAlbum']) {} else {
console.log('獲取權限失敗')
that.$refs.uToast.show({
type: 'error',
message: `獲取權限失敗`,
duration: 1200,
})
}
}
})
}
})
}
})
} else {
fn()
}
}
})
},
到了這里,關于uniapp 微信小程序 實現(xiàn) 將base64圖片保存相冊和轉發(fā)分享微信好友功能記錄 直接cv就能用!?。?!的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!