麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 小程序 > 正文

微信小程序通過保存圖片分享到朋友圈功能

2020-03-21 16:18:58
字體:
來源:轉載
供稿:網友

說明

首先說明一點,小程序內是不能直接分享到朋友圈的。所以只能通過生成圖片,攜帶小程序二維碼,保存到手機相冊,讓用戶自己選擇發到朋友圈。然后可以通過在小程序中識別二維碼來進入小程序的指定頁面。參考市面上支持分享的應用,基本都是這種實現方式。

準備階段

1.通過服務器獲取小程序碼

這里可以參考下微信的官方文檔,給后臺指定的參數和路徑等信息,讓后臺生成指定的小程序碼。然后調用wx.getImageInfo將后臺生成的小程序碼保存起來。

注意一定要仔細看下微信的文檔,如果生成小程序碼的路徑正式服務器不存在,將會生成失敗。這點也很蛋疼,很不方便調試。

wx.getImageInfo({              src:'https://xxx.jpg',//服務器返回的帶參數的小程序碼地址  success: function (res) {    //res.path是網絡圖片的本地地址    qrCodePath = res.path;  },  fail: function (res) {    //失敗回調  }});

1.通過canvas繪制所需信息

準備好所有的圖片之后就可以通過canvas繪制了,然后再將canvas導出為圖片。關于繪制這塊,可以參考微信的canvas api,下面的基本都是查著api的方法走的。

其中需要注意的有幾點。

1.是不知道繪出來的文字長度,所以不知道文字到底什么時候該換行,所以針對商品標題,可能多行的數據固定了一行18個字符。

2.是關于繪制圖片的導出,按照官方api的說法應該在draw()完成的回調中執行,但是通過

canvasCtx.draw(false,function(res){});

這種方式,一直不回調完成。不知道哪里出問題了。所以最后只好加了一個延時去保存圖片。

/** * 繪制分享的圖片 * @param goodsPicPath 商品圖片的本地鏈接 * @param qrCodePath 二維碼的本地鏈接 */drawSharePic: function (goodsPicPath, qrCodePath) {  wx.showLoading({    title: '正在生成圖片...',    mask: true,  });  //y方向的偏移量,因為是從上往下繪制的,所以y一直向下偏移,不斷增大。  let yOffset = 20;  const goodsTitle = this.data.orderDetail.paltProduct.name1;  let goodsTitleArray = [];  //為了防止標題過長,分割字符串,每行18個  for (let i = 0; i < goodsTitle.length / 18; i++) {    if (i > 2) {      break;    }    goodsTitleArray.push(goodsTitle.substr(i * 18, 18));  }  const price = this.data.orderDetail.price;  const marketPrice = this.data.orderDetail.marketPrice;  const title1 = '您的好友邀請您一起分享精品好貨';  const title2 = '立即打開看看吧';  const codeText = '長按識別小程序碼查看詳情';  const imgWidth = 780;  const imgHeight = 1600;  const canvasCtx = wx.createCanvasContext('shareCanvas');  //繪制背景  canvasCtx.setFillStyle('white');  canvasCtx.fillRect(0, 0, 390, 800);  //繪制分享的標題文字  canvasCtx.setFontSize(24);  canvasCtx.setFillStyle('#333333');  canvasCtx.setTextAlign('center');  canvasCtx.fillText(title1, 195, 40);  //繪制分享的第二行標題文字  canvasCtx.fillText(title2, 195, 70);  //繪制商品圖片  canvasCtx.drawImage(goodPicPath, 0, 90, 390, 390);  //繪制商品標題  yOffset = 490;  goodsTitleArray.forEach(function (value) {    canvasCtx.setFontSize(20);    canvasCtx.setFillStyle('#333333');    canvasCtx.setTextAlign('left');    canvasCtx.fillText(value, 20, yOffset);    yOffset += 25;  });  //繪制價格  yOffset += 8;  canvasCtx.setFontSize(20);  canvasCtx.setFillStyle('#f9555c');  canvasCtx.setTextAlign('left');  canvasCtx.fillText('¥', 20, yOffset);  canvasCtx.setFontSize(30);  canvasCtx.setFillStyle('#f9555c');  canvasCtx.setTextAlign('left');  canvasCtx.fillText(price, 40, yOffset);  //繪制原價  const xOffset = (price.length / 2 + 1) * 24 + 50;  canvasCtx.setFontSize(20);  canvasCtx.setFillStyle('#999999');  canvasCtx.setTextAlign('left');  canvasCtx.fillText('原價:¥' + marketPrice, xOffset, yOffset);  //繪制原價的刪除線  canvasCtx.setLineWidth(1);  canvasCtx.moveTo(xOffset, yOffset - 6);  canvasCtx.lineTo(xOffset + (3 + marketPrice.toString().length / 2) * 20, yOffset - 6);  canvasCtx.setStrokeStyle('#999999');  canvasCtx.stroke();  //繪制最底部文字  canvasCtx.setFontSize(18);  canvasCtx.setFillStyle('#333333');  canvasCtx.setTextAlign('center');  canvasCtx.fillText(codeText, 195, 780);  //繪制二維碼  canvasCtx.drawImage(qrCodePath, 95, 550, 200, 200);  canvasCtx.draw();  //繪制之后加一個延時去生成圖片,如果直接生成可能沒有繪制完成,導出圖片會有問題。  setTimeout(function () {    wx.canvasToTempFilePath({      x: 0,      y: 0,      width: 390,      height: 800,      destWidth: 390,      destHeight: 800,      canvasId: 'shareCanvas',      success: function (res) {        that.setData({          shareImage: res.tempFilePath,          showSharePic: true        })        wx.hideLoading();      },      fail: function (res) {        console.log(res)        wx.hideLoading();      }    })  }, 2000);},

最后看下繪制出來的效果圖。

小程序開發,朋友圈,微信小程序,保存圖片

生成圖片之后就可以提示用戶去保存分享了。

總結

以上所述是小編給大家介紹的微信小程序通過保存圖片分享到朋友圈,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91麻豆蜜桃一区二区三区 | 高清av在线 | 黄色网页在线观看 | 久久国产精品二区 | 黄色大片免费看 | 国产精品99久久久久久久女警 | 久久亚洲精品久久国产一区二区 | 九九热在线精品视频 | 久久亚洲精品11p | 轻点插视频| 成人午夜精品久久久久久久蜜臀 | 视频一区 在线 | 国产中出在线观看 | 久久久久北条麻妃免费看 | 日产精品一区二区三区在线观看 | 少妇一级淫片免费放4p | 黄色免费在线视频网站 | 成人在线观看免费视频 | 久久精品久久精品国产大片 | 欧美亚洲黄色 | 91精品国产综合久久久动漫日韩 | 综合国产在线 | 亚洲电影在线观看高清免费 | 免费看搡女人无遮挡的视频 | 超碰97最新| 91九色网 | 亚洲成人欧美在线 | 毛片大全在线观看 | 综合网日日天干夜夜久久 | 黄色网址免费在线播放 | 成人性视频在线 | 欧美精品一级片 | 鲁丝一区二区二区四区 | 九九热视频在线 | 91精品国产综合久久久动漫日韩 | 久久91久久久久麻豆精品 | 国产精品视频一区二区三区四区国 | 欧美三日本三级少妇三级99观看视频 | av在线不卡免费 | 一级做a爱片久久毛片a高清 | 99精品欧美一区二区 |