微信小程序?qū)崿F(xiàn)分享朋友圈的圖片功能示例
本文實(shí)例講述了微信小程序?qū)崿F(xiàn)分享朋友圈的圖片功能。分享給大家供大家參考,具體如下:
由于微信小程序只支持分享給朋友或者群,不支持分享到朋友圈,又有分享到朋友圈這個(gè)需求,那就要想辦法實(shí)現(xiàn)這個(gè)需求。查閱各種資料,發(fā)現(xiàn)基本思路有兩種,一種是后端實(shí)現(xiàn),另一種是前端實(shí)現(xiàn),后端實(shí)現(xiàn)的方式這里就不討論了,因?yàn)槲沂遣欢蠖说模粫岸说臇|西,所以這里就記錄一下前端的實(shí)現(xiàn)方法。
前端要實(shí)現(xiàn)分享到朋友群,都是通過canvas做一張圖片,然后用戶手動(dòng)分享朋友圈。前端具體要做的就是把要分享的頁面用canvas重做一遍,生成一個(gè)圖片,保存這個(gè)圖片到用戶本地相冊。
要想用canvas,需要在頁面上使用canvas標(biāo)簽,把它定位到頁面之外,以免影響頁面,在繪制圖片時(shí),圖片的地址必須是通過微信下載圖片后返回的虛擬地址,要不canvas無法繪制出來,接下來最主要的就是canvas的使用了,小程序的canvas和h5的canvas一樣,并沒有多大的區(qū)別。
下面是一個(gè)例子:
首先是在頁面上創(chuàng)建canvas
index.wxml
<view class="canvas-box">
<canvas canvas-id="myCanvas" style="width:100%;height:{{windowHeight}}px;"></canvas>
</view>
<button bindtap='startDraw'>分享朋友圈</button>
寫一個(gè)樣式把canvas定位到頁面之外,以免影響頁面的效果
.canvas-box{
width: 100%;
position: fixed;
left: 0;
top: 999999rpx;
}
接下來就是繪圖了,具體可以參考繪圖文檔
startDraw:function(){
const ctx = wx.createCanvasContext('myCanvas');
let windowWidth = wx.getSystemInfoSync().windowWidth;
let windowHeight = wx.getSystemInfoSync().windowHeight;
let _this=this;
this.setData({
scale: 1.6
});
ctx.setFillStyle('#333');
ctx.fillRect(0, 0, windowWidth, 100);
ctx.setFontSize(20);
ctx.setFillStyle('#fff');
ctx.fillText('開始繪制圖片', 30, 50);
ctx.setFillStyle('#FFF');
ctx.fillRect(0, 70, windowWidth, 600);
ctx.setFillStyle('#666');
ctx.setFontSize(19);
ctx.fillText('我是標(biāo)題',100, 140);
ctx.setFontSize(20);
ctx.fillText('微信小程序文本部分',20 , 170);
ctx.draw()
}
到這為止,canvas繪圖是做完了,現(xiàn)在要把canvas繪制的圖形轉(zhuǎn)化為圖片,調(diào)用微信小程序已有的接口,接上面方法內(nèi):
wx.canvasToTempFilePath({
x: 0,
y: 0,
width: windowWidth,
height: windowHeight,
destWidth: windowWidth,
destHeight: windowHeight,
canvasId: 'myCanvas',
success: function (res1) {
console.log('朋友圈分享圖生成成功:' + res1.tempFilePath);
}
});
這樣就完成了分享圖片的制作。
希望本文所述對大家微信小程序開發(fā)有所幫助。
相關(guān)文章
JS使用正則表達(dá)式除去字符串中重復(fù)字符的方法
這篇文章主要介紹了JS使用正則表達(dá)式除去字符串中重復(fù)字符的方法,以一個(gè)簡單實(shí)例分析了JavaScript中正則過濾的相關(guān)使用技巧,需要的朋友可以參考下2015-11-11
javascript控制Div層透明屬性由淺變深由深變淺逐漸顯示
控制Div層透明屬性,由淺變深逐漸顯示,由深變淺逐漸消失,具體實(shí)現(xiàn)代碼如下,喜歡的朋友可以感受下2013-11-11
JavaScript 懸浮窗口實(shí)現(xiàn)代碼
主要是window.onscroll的運(yùn)用2009-02-02
javascript筆記 String類replace函數(shù)的一些事
加固javascript基礎(chǔ)知識目的是為以后研究jQuery源碼做好鋪墊。2011-09-09
javaScript函數(shù)中執(zhí)行C#代碼中的函數(shù)方法總結(jié)
這篇文章介紹了javaScript函數(shù)中執(zhí)行C#代碼中的函數(shù)方法總結(jié),有需要的朋友可以參考一下2013-08-08
Discuz 公告效果(自動(dòng)換行,無間隙滾動(dòng))
Discuz 公告效果效果代碼,可以自動(dòng)換行和無間隙滾動(dòng)2009-03-03

