微信小程序?qū)崿F(xiàn)分享到朋友圈功能
截止到2017年11月18號,微信小程序官方還尚未開放直接分享到朋友圈的能力,但是勞動人民的智慧是偉大的,現(xiàn)在普遍的做法是,生成一張帶有小程序碼的圖片,保存到用戶相冊,用戶自行發(fā)布圖片到朋友圈
我的套路:
- 請求后端API生成小程序碼(生成小程序碼需要access token,后端生成比較方便)
- canvas繪制文字和圖片到畫布
- 當(dāng)用戶點擊分享到朋友圈時,給用戶展示畫布,畫布轉(zhuǎn)成圖片,并將圖片保存到相冊
onShow: function () { var that = this; //1. 請求后端API生成小程序碼 that.getQr(); //2. canvas繪制文字和圖片 const ctx = wx.createCanvasContext('myCanvas'); var imgPath = '../../../image/intro.png' var bgImgPath = '../../../image/bgImgPath.png'; ctx.drawImage(imgPath, 0, 0, 600, 520); ctx.setFillStyle('white') ctx.fillRect(0, 520, 600, 280); ctx.drawImage(imgPath, 30, 550, 60, 60); ctx.drawImage(bgImgPath, 30, 550, 60, 60); ctx.drawImage(imgPath, 410, 610, 160, 160); ctx.setFontSize(28) ctx.setFillStyle('#6F6F6F') ctx.fillText('妖妖靈', 110, 590) ctx.setFontSize(30) ctx.setFillStyle('#111111') ctx.fillText('寵友們快來圍觀萌寵靚照', 30, 660) ctx.fillText('我在萌爪幼稚園', 30, 700) ctx.setFontSize(24) ctx.fillText('長按掃碼查看詳情', 30, 770) ctx.draw() }, // 3. canvas畫布轉(zhuǎn)成圖片 wx.canvasToTempFilePath({ x: 0, y: 0, width: 600, height: 800, destWidth: 600, destHeight:800, canvasId: 'myCanvas', success: function(res) { console.log(res.tempFilePath); that.setData({ shareImgSrc : res.tempFilePath }) }, fail:function (res) { console.log(res) } }) //4. 當(dāng)用戶點擊分享到朋友圈時,將圖片保存到相冊 wx.saveImageToPhotosAlbum({ filePath:that.data.shareImgSrc, success(res) { wx.showModal({ title: '存圖成功', content: '圖片成功保存到相冊了,去發(fā)圈噻~', showCancel:false, confirmText:'好噠', confirmColor:'#72B9C3', success: function(res) { if (res.confirm) { console.log('用戶點擊確定'); } that.hideShareImg() } }) } })
canvas繪制單位為px,舉個例子,屏幕寬375,繪制375的畫布,保存的圖片就是375px,圖片像素度不夠會糊掉,所以我改進(jìn)了一下套路:
1.請求后端API生成小程序碼(生成小程序碼需要access token,后端生成比較方便)
2.canvas繪制文字和圖片到畫布
繪制2倍屏幕寬度的canvas畫布,canvas畫布必須是可見狀態(tài)下,才可以被轉(zhuǎn)成圖片,可是他辣么大辣么丑肯定不能給用戶看見,那就給他定位定個巨大的數(shù)字超出屏幕就好了
3.畫布轉(zhuǎn)成圖片
4.當(dāng)用戶點擊分享到朋友圈時,給用戶展示圖片,并將圖片保存到相冊
為大家推薦現(xiàn)在關(guān)注度比較高的微信小程序教程一篇:《微信小程序開發(fā)教程》小編為大家精心整理的,希望喜歡。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript 數(shù)組運用實現(xiàn)代碼
復(fù)習(xí)一下JS中數(shù)組的運用。學(xué)習(xí)js數(shù)組的朋友可以參考下。2010-04-04JS實現(xiàn)移動端可折疊導(dǎo)航菜單(現(xiàn)代都市風(fēng))
這篇文章主要介紹了JS如何實現(xiàn)移動端可折疊導(dǎo)航菜單,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07JS的執(zhí)行機制(EventLoop、宏任務(wù)和微任務(wù))
這篇文章主要介紹了JS的執(zhí)行機制(EventLoop、宏任務(wù)和微任務(wù)),具有很好的參考價值,希望對大家有所幫助。2023-01-01Bootstrap導(dǎo)航菜單點擊后無法自動添加active的處理方法
今天小編就為大家分享一篇Bootstrap導(dǎo)航菜單點擊后無法自動添加active的處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08關(guān)于layui flow loading占位圖的實現(xiàn)方法
今天小編就為大家分享一篇關(guān)于layui flow loading占位圖的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09JS獲取IE版本號與HTML設(shè)置IE文檔模式的方法
下面小編就為大家?guī)硪黄狫S獲取IE版本號與HTML設(shè)置IE文檔模式的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10