您好,登錄后才能下訂單哦!
本篇內容介紹了“小程序分享頁面圖片怎么實現”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
開發微信小程序的時候,經常要遇到如上圖這樣的,保存小程序二維碼圖片的分享功能。
首先,需要在 wxml 中 創建一個 畫板 canvas 。
wxml :
保存圖片 //保存圖片按鈕
//這里的 canvas-id 后面要用的上。
//style里的寬高要用上,不設置寬高畫板會失效。
//canvasHidden是控制畫板顯示隱藏的參數,畫板直接設置display none,會導致失效。
data :
data: {
canvasHidden:true, //設置畫板的顯示與隱藏,畫板不隱藏會影響頁面正常顯示
avatarUrl: '', //用戶頭像
nickName: '', //用戶昵稱
wxappName: app.globalData.wxappName, //小程序名稱
shareImgPath: '',
screenWidth: '', //設備屏幕寬度
description: app.globalData.description, //獎品描述
FilePath:'', //頭像路徑
},
js :
onLoad: function (options) {
var that = this
var userInfo, nickName, avatarUrl
//獲取用戶信息,頭像,昵稱之類的數據
wx.getUserInfo({
success: function (res) {
console.log(res);
userInfo = res.userInfo
nickName = userInfo.nickName
avatarUrl = userInfo.avatarUrl
that.setData({
avatarUrl: res.userInfo.avatarUrl,
nickName: res.userInfo.nickName,
})
wx.downloadFile({
url: res.userInfo.avatarUrl
})
}
})
//獲取用戶設備信息,屏幕寬度
wx.getSystemInfo({
success: res => {
that.setData({
screenWidth: res.screenWidth
})
console.log(that.data.screenWidth)
}
})
//定義的保存圖片方法
saveImageToPhotosAlbum:
function () {
wx.showLoading({
title: '保存中...',
})
var that = this;
//設置畫板顯示,才能開始繪圖
that.setData({
canvasHidden: false
})
var unit = that.data.screenWidth / 375
var path2 = "../images/bg3.png"
var avatarUrl = that.data.avatarUrl
console.log(avatarUrl + "頭像")
var path3 = "../images/award.png"
var path4 = "../images/qrcode.png"
var path5 = "../images/headborder.png"
var path6 = "../images/border.png"
var unlight = "../images/unlight.png"
var nickName = that.data.nickName
console.log(nickName + "昵稱")
var context = wx.createCanvasContext('share')
var description = that.data.description
var wxappName = "來「 " + that.data.wxappName + " 」試試運氣"
context.drawImage(path2, 0, 0, unit * 375, unit * 462.5)
// context.drawImage(path5, unit * 164, unit * 40, unit * 50, unit * 50)
context.drawImage(path3, unit * 48, unit * 120, unit * 280, unit * 178)
context.drawImage(path6, unit * 48, unit * 120, unit * 280, unit * 178)
context.drawImage(unlight, unit * 82, unit * 145, unit * 22, unit * 32)
context.drawImage(unlight, unit * 178 , unit * 145, unit * 22, unit * 32)
context.drawImage(unlight, unit * 274, unit * 145, unit * 22, unit * 32)
context.drawImage(unlight, unit * 82, unit * 240, unit * 22, unit * 32)
context.drawImage(unlight, unit * 178, unit * 240, unit * 22, unit * 32)
context.drawImage(unlight, unit * 274, unit * 240, unit * 22, unit * 32)
context.drawImage(path4, unit * 20, unit * 385, unit * 55, unit * 55)
// context.drawImage(path5, 48, 200, 280, 128)
context.setFontSize(14)
context.setFillStyle("#999")
context.fillText("長按識別小程序", unit * 90, unit * 408)
context.fillText(wxappName, unit * 90, unit * 428)
//把畫板內容繪制成圖片,并回調 畫板圖片路徑
context.draw(false, function () {
wx.canvasToTempFilePath({
x: 0,
y: 0,
width: unit * 375,
height: unit * 462.5,
destWidth: unit * 375,
destHeight: unit * 462.5,
canvasId: 'share',
success: function (res) {
that.setData({
shareImgPath: res.tempFilePath
})
if (!res.tempFilePath) {
wx.showModal({
title: '提示',
content: '圖片繪制中,請稍后重試',
showCancel: false
})
}
console.log(that.data.shareImgPath)
//畫板路徑保存成功后,調用方法吧圖片保存到用戶相冊
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
//保存成功失敗之后,都要隱藏畫板,否則影響界面顯示。
success: (res) => {
console.log(res)
wx.hideLoading()
that.setData({
canvasHidden: true
})
},
fail: (err) => {
console.log(err)
wx.hideLoading()
that.setData({
canvasHidden: true
})
}
})
}
})
});
},
“小程序分享頁面圖片怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。