溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

小程序怎么實(shí)現(xiàn)朋友圈圖片的生成

發(fā)布時(shí)間:2020-12-21 14:30:32 來(lái)源:億速云 閱讀:175 作者:小新 欄目:移動(dòng)開發(fā)

這篇文章主要介紹小程序怎么實(shí)現(xiàn)朋友圈圖片的生成,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

微信的小程序是沒(méi)有分享到朋友圈的功能的。小程序目前只能分享到群里或者發(fā)給好友。但是業(yè)務(wù)需要方便推廣,需要分享到朋友圈。

經(jīng)過(guò)度娘后,得出了以下思路:利用小程序canvas繪制圖片,將背景圖和二維碼繪制成一張圖片。百度過(guò)幾個(gè)好的demo,參考了一下,本以為會(huì)很簡(jiǎn)單就解決這個(gè)問(wèn)題,然而這個(gè)并不是小程序canvas的難點(diǎn)!

  WXML

  <view class='canvas-box'>
    <canvas style="width:750rpx; height:940rpx;" canvas-id="myCanvas"/>
    <image src='{{imagePath}}'></image>  
  </view>

<button class='inviteBtn' bindtap='createSharePic'>生成朋友圈分享圖</button>、

這是觸發(fā)canvas的按鈕

  繪制長(zhǎng)按識(shí)別二維碼

  settext: function (context) {
    let _this = this;    
    var size  = _this.setCanvasSize();    
    var text  = "長(zhǎng)按識(shí)別小程序";
    context.setFontSize(12);
    context.setTextAlign("center");
    context.setFillStyle("#000");
    context.fillText(text, size.w / 2, size.h * 0.90);
    context.stroke();
  },

繪制圖片

createNewImg: function () {    
var _this       = this;    
var size        = _this.setCanvasSize();    
var context     = wx.createCanvasContext('myCanvas');    
var path        = "/assets/images/qrshare1.jpg";  //測(cè)試的圖片    
var imageQrCode = _this.data.filePath;       //二維碼
    context.drawImage(path, 0, 0, size.w, size.h);
    context.drawImage(imageQrCode, size.w / 2 - 55, size.h * 0.55, size.w * 0.33, size.w * 0.33);    
    this.settext(context);    //繪制圖片    
    context.draw();    //將生成好的圖片保存到本地,需要延遲一會(huì),繪制期間耗時(shí)    
    wx.showToast({
      title   : '生成中...',
      icon    : 'loading',
      duration: 2000
    });
    setTimeout(function () {
      wx.canvasToTempFilePath({
        canvasId: 'myCanvas',
        success : function (res) {          
        var tempFilePath = res.tempFilePath;
          _this.setData({
            imagePath   : tempFilePath,
          });     
          var img  = _this.data.imagePath;
          let urls = []
          urls.push(img, '二維碼路徑')   //二維碼路徑是為了用戶也可以保存二維碼,分享到朋友圈有合成的圖片也有二維碼(參考拉鉤小程序分享)
          wx.previewImage({
            current: img,  // 當(dāng)前顯示圖片的http鏈接
            urls   : urls  // 需要預(yù)覽的圖片http鏈接列表          })
        },
        fail: function (res) {
          console.log(res);
        }
      });
    }, 2000);
  },

本來(lái)我是直接繪制網(wǎng)絡(luò)圖片的,但是在真機(jī)上,網(wǎng)絡(luò)圖片不顯示!于是百度了一下,可以先下載,接口返回的圖片再繪制

//生成朋友圈圖片  createSharePic() {
    let _this = this,
        qrcode= _this.data.qrcode
    wx.downloadFile({
      url    : qrcode,
      success: function (res) {        
      if (res.statusCode === 200) {
          _this.setData({
            filePath: res.tempFilePath,
          })
          _this.createNewImg();
        }
      }
    })
    
  }

問(wèn)題出來(lái)了,本地上測(cè)試沒(méi)問(wèn)題,遠(yuǎn)程調(diào)試也沒(méi)問(wèn)題,可以生成圖片保存到手機(jī)

小程序怎么實(shí)現(xiàn)朋友圈圖片的生成

小程序怎么實(shí)現(xiàn)朋友圈圖片的生成

納悶了一會(huì)之后,我發(fā)現(xiàn)自己沒(méi)有后臺(tái)添加download的下載域名。因?yàn)槠綍r(shí)在本地的都是勾選了不檢查域名。所以在這納悶了很久?。。。。。?!

以上是“小程序怎么實(shí)現(xiàn)朋友圈圖片的生成”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI