国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序生成二維碼海報(bào)并分享

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序生成二維碼海報(bào)并分享。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

背景:點(diǎn)擊圖標(biāo),生成海報(bào)后,點(diǎn)擊保存相冊,可以保存

生成海報(bào):插件wxa-plugin-canvas,此處使用頁面異步生成組件方式,官網(wǎng)地址:wxa-plugin-canvas - npm

二維碼:調(diào)用后端接口生成二維碼

1.二維碼按鈕

          <!-- 二維碼按鈕 -->
          <view class="item" bindtap="onCreatePoster">
            <van-icon name="scan" size="20px" />
            <view class="icon-title">
              二維碼
            </view>
          </view>

2.二維碼海報(bào)顯示圖層

<!-- 二維碼海報(bào):注意布局要和其他元素獨(dú)立 -->
<view bindtap="closePoster">
  <!-- 一定要設(shè)置元素的id="poster" -->
  <poster id="poster" config="{{posterConfig}}" bind:success="onPosterSuccess" bind:fail="onPosterFail"></poster>
  <view wx:if="{{posterShow}}" class="popup-mask"></view>
  <view wx:if="{{posterShow}}" class="posterImg-box">
    <image mode="widthFix" class="posterImg" src="{{posterImg}}"></image>
    <view class="btn-create" data-pic="{{basicInfo.pic}}" catchtap="savePosterPic">保存到相冊</view>
  </view>
</view>

3.點(diǎn)擊按鈕后異步生成海報(bào)

需要調(diào)用獲取圖片信息接口wx.getImageInfo(),獲取到圖片的寬高以做整體寬高配置

  /**
     * 異步生成海報(bào)
     */
    async onCreatePoster() {
      console.log("異步生成海報(bào)");
      // 獲取二維碼信息(實(shí)質(zhì)是后端生成的一張二維碼圖片)
      const qrRes = await createQRCode({id: this.data.basicInfo.id});
      console.log(qrRes,"qrRes");

      // 獲取圖片信息,圖片獲取成功后調(diào)用方法生成海報(bào)
      const pic = this.data.basicInfo.pic;
      wx.getImageInfo({
        src: pic,
        success:(res)=> {
          console.log(res.width)
          // console.log(res.height)
          const height = 490 * res.height / res.width
            // setData配置數(shù)據(jù),數(shù)據(jù)配置完成后,生成海報(bào)
            this.createPosterDone(height, qrRes.data);
        }
      })
    },
  createPosterDone(picHeight,qrCode){
    const _this = this
    const _baseHeight = 74 + (picHeight + 120)
    this.setData({
      posterConfig: {
         // 海報(bào)總寬高
        width: 750,
        height: picHeight + 660,
        backgroundColor: '#fff',
        debug: false,
        // 圖片所在容器起始位置,寬高等配置
        blocks: [{
          x: 76,
          y: 74,
          width: 604,
          height: picHeight + 120,
          borderWidth: 2,
          borderColor: '#c2aa85',
          borderRadius: 8
        }],
        // 圖片配置
        images: [{
            x: 133,
            y: 133,
            url: _this.data.goodsInfoList.basicInfo.pic, // 商品圖片
            width: 490,
            height: picHeight
          },
          {
            x: 76,
            y: _baseHeight + 199,
            url: qrCode, // 二維碼
            width: 222,
            height: 222
          }
        ],
        // 文字信息:商品標(biāo)題、價(jià)格、二維碼處文字
        texts: [{
            x: 375,
            y: _baseHeight + 80,
            width: 650,
            lineNum: 2,
            text: _this.data.goodsInfoList.basicInfo.name,
            textAlign: 'center',
            fontSize: 40,
            color: '#333'
          },
          {
            x: 375,
            y: _baseHeight + 180,
            text: '¥' + _this.data.goodsInfoList.basicInfo.minPrice,
            textAlign: 'center',
            fontSize: 50,
            color: '#e64340'
          },
          {
            x: 352,
            y: _baseHeight + 320,
            text: '長按識(shí)別小程序碼',
            fontSize: 28,
            color: '#999'
          }
        ],
      }
    }, () => {
      Poster.create(this.data.posterConfig, this);
    });
  },

4.海報(bào)生成成功后將海報(bào)數(shù)據(jù)(海報(bào)臨時(shí)路徑)和是否顯示海報(bào)層,存放到data中

data:{
        // 二維碼海報(bào)配置
    posterConfig:{},
    // poster顯示標(biāo)識(shí)
    posterShow: false,
    // 保存到相冊的圖片
    posterImg: ''
},

onPosterSuccess(e){
    console.log("二維碼生成成功");
    this.setData({
      posterImg: e.detail,
      posterShow: true
    })
  },

5.點(diǎn)擊海報(bào)任何位置,除了保存到相冊按鈕,隱藏海報(bào)層

closePoster方法綁定到最外層

保存按鈕使用catchbind阻止冒泡,即可防止點(diǎn)擊保存時(shí)也會(huì)關(guān)掉海報(bào)層

<!-- 二維碼海報(bào):注意布局要和其他元素獨(dú)立 -->
<view bindtap="closePoster">
  <!-- 一定要設(shè)置元素的id="poster" -->
  <poster id="poster" config="{{posterConfig}}" bind:success="onPosterSuccess" bind:fail="onPosterFail"></poster>
  <view wx:if="{{posterShow}}" class="popup-mask"></view>
  <view wx:if="{{posterShow}}" class="posterImg-box">
    <image mode="widthFix" class="posterImg" src="{{posterImg}}"></image>
    <view class="btn-create" data-pic="{{basicInfo.pic}}" catchtap="savePosterPic">保存到相冊</view>
  </view>
</view>
  // 關(guān)閉海報(bào)
  closePoster(){
    this.setData({
      posterShow: false
    })
  },

6.點(diǎn)擊保存到相冊按鈕,調(diào)用wx.saveImageToPhotosAlbum()方法保存圖片到本地

注意wx.saveImageToPhotosAlbum()方法的參數(shù)filePath不能是絕對路徑或者網(wǎng)絡(luò)圖片,必須是臨時(shí)圖片。所以在生成海報(bào)成功后需要將圖片保存到data的posterImg中,保存時(shí)用這個(gè)就可以了文章來源地址http://www.zghlxwxcb.cn/news/detail-842182.html

// 保存海報(bào)到相冊
  savePosterPic(e){
    console.log("保存到相冊",e);
    console.log(this.data.posterImg);//http://tmp/xlHB02MBJ50H9887bf9a40b5b5dc24b904e4132afcb0.png
    wx.saveImageToPhotosAlbum({
      // 不能直接使用this.data.basicInfo.pic的圖片
      // "saveImageToPhotosAlbum:fail https://file.winwebedu.com/mall/collage-01.jpg not absolute path"
      filePath: this.data.posterImg,
      success(res) { 
        wx.showToast({
          title: '保存成功',
        })
      },
      fail(err){
        console.log(err);
        wx.showToast({
          title: '保存失敗',
        })
      },
      // 無論成功與否關(guān)閉海報(bào)
      complete(){
        this.setData({
          posterShow: false
        });
      }
    })
  },

7.補(bǔ)充,如果要直接生成二維碼不使用異步

<poster class="wxcode-box" id="poster" config="{{posterConfig}}" bind:success="onPosterSuccess" bind:fail="onPosterFail">
            </poster>

  onPosterSuccess(e){
    // console.log("二維碼生成成功");
    const { detail } = e;
    console.log(detail);
    wx.previewImage({
        current: detail,
        urls: [detail]
    })
  },
  
  posterConfig配置:
  jdConfig: {
        width: 750,
        height: 1334,
        backgroundColor: '#fff',
        debug: false,
        pixelRatio: 1,
        blocks: [
            {
                width: 690,
                height: 808,
                x: 30,
                y: 183,
                borderWidth: 2,
                borderColor: '#f0c2a0',
                borderRadius: 20,
            },
            {
                width: 634,
                height: 74,
                x: 59,
                y: 770,
                backgroundColor: '#fff',
                opacity: 0.5,
                zIndex: 100,
            },
        ],
        texts: [
            {
                x: 113,
                y: 61,
                baseLine: 'middle',
                text: '偉仔',
                fontSize: 32,
                color: '#8d8d8d',
            },
            {
                x: 30,
                y: 113,
                baseLine: 'top',
                text: '發(fā)現(xiàn)一個(gè)好物,推薦給你呀',
                fontSize: 38,
                color: '#080808',
            },
            {
                x: 92,
                y: 810,
                fontSize: 38,
                baseLine: 'middle',
                text: '標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題',
                width: 570,
                lineNum: 1,
                color: '#8d8d8d',
                zIndex: 200,
            },
            {
                x: 59,
                y: 895,
                baseLine: 'middle',
                text: [
                    {
                        text: '2人拼',
                        fontSize: 28,
                        color: '#ec1731',
                    },
                    {
                        text: '¥99',
                        fontSize: 36,
                        color: '#ec1731',
                        marginLeft: 30,
                    }
                ]
            },
            {
                x: 522,
                y: 895,
                baseLine: 'middle',
                text: '已拼2件',
                fontSize: 28,
                color: '#929292',
            },
            {
                x: 59,
                y: 945,
                baseLine: 'middle',
                text: [
                    {
                        text: '商家發(fā)貨&售后',
                        fontSize: 28,
                        color: '#929292',
                    },
                    {
                        text: '七天退貨',
                        fontSize: 28,
                        color: '#929292',
                        marginLeft: 50,
                    },
                    {
                        text: '運(yùn)費(fèi)險(xiǎn)',
                        fontSize: 28,
                        color: '#929292',
                        marginLeft: 50,
                    },
                ]
            },
            {
                x: 360,
                y: 1065,
                baseLine: 'top',
                text: '長按識(shí)別小程序碼',
                fontSize: 38,
                color: '#080808',
            },
            {
                x: 360,
                y: 1123,
                baseLine: 'top',
                text: '超值好貨一起拼',
                fontSize: 28,
                color: '#929292',
            },
        ],
        images: [
            {
                width: 62,
                height: 62,
                x: 30,
                y: 30,
                borderRadius: 62,
                url: 'https://img.yzcdn.cn/vant/cat.jpeg',
            },
            {
                width: 634,
                height: 634,
                x: 59,
                y: 210,
                url: 'https://b.yzcdn.cn/vant/icon-demo-1126.png',
            },
            {
                width: 220,
                height: 220,
                x: 92,
                y: 1020,
                url: 'https://img.yzcdn.cn/vant/cat.jpeg',
            },
            {
                width: 750,
                height: 90,
                x: 0,
                y: 1244,
                url: 'https://b.yzcdn.cn/vant/icon-demo-1126.png',
            }
        ]

    },

到了這里,關(guān)于微信小程序生成二維碼海報(bào)并分享的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • uniapp開發(fā)微信小程序生成二維碼海報(bào)
  • 微信小程序生成頁面分享二維碼(代碼親測有效)

    說明: 獲取不限制的小程序碼 | 微信開放文檔 以上是官網(wǎng)鏈接,可以自行查看 不懂的可以留言告訴我

    2024年02月11日
    瀏覽(20)
  • uni-app(微信小程序) 根據(jù)小程序頁面路徑(可帶參數(shù)) 生成二維碼、分享碼

    uni-app(微信小程序) 根據(jù)小程序頁面路徑(可帶參數(shù)) 生成二維碼、分享碼

    微信官方文檔 小程序 看文檔點(diǎn)這里 第一個(gè)獲取小程序碼,就是根據(jù)你要通過二維碼打開的頁面路徑生成一個(gè)小程序碼,且這個(gè)小程序碼是永久的 其實(shí)文檔內(nèi)也說明了,很少用到。即使需要生成這樣的小程序碼,可以去微信公眾平臺(tái)的小程序管理后臺(tái)生成,還方便。 調(diào)用方

    2024年02月06日
    瀏覽(51)
  • 生成微信小程序發(fā)布上線后的二維碼 、獲取微信小程序二維碼、微信小程序二維碼如何生成?

    生成微信小程序發(fā)布上線后的二維碼 、獲取微信小程序二維碼、微信小程序二維碼如何生成?

    情景: 1、在微信小程序?qū)徍送瓿?,發(fā)布到線上后,想通過掃描小程序二維碼進(jìn)入小程序 2、可分享二維碼出去,通過二維碼掃碼進(jìn)入小程序 方法: 1、進(jìn)入微信小程序的后臺(tái)配置。鏈接:微信公眾平臺(tái)。(如圖一) 2、進(jìn)入 “設(shè)置”?-- “?基本設(shè)置” -- “小程序碼及線下物

    2024年02月12日
    瀏覽(102)
  • 微信小程序怎樣生成體驗(yàn)版二維碼?微信小程序怎么轉(zhuǎn)化為二維碼?

    微信小程序怎樣生成體驗(yàn)版二維碼?微信小程序怎么轉(zhuǎn)化為二維碼?

    方法:在微信開發(fā)者工具界面,右上角,點(diǎn)擊上傳,如果提示成功,說明已經(jīng)上傳成功。 ? ? 網(wǎng)址: 微信公眾平臺(tái) 微信公眾平臺(tái),給個(gè)人、企業(yè)和組織提供業(yè)務(wù)服務(wù)與用戶管理能力的全新服務(wù)平臺(tái)。 https://mp.weixin.qq.com/ 在微信公眾號(hào)平臺(tái)登錄,選擇需要生成二維碼的小程序

    2024年02月10日
    瀏覽(106)
  • 如何生成微信小程序二維碼,小程序內(nèi)頁二維碼

    如何生成微信小程序二維碼,小程序內(nèi)頁二維碼

    你自己得有個(gè)微信公眾號(hào),只需要知道小程序的名字就可以了 生成小程序二維碼 第一步編輯素材 第二步搜索小程序名字,然后回車,下一步 第三步選小程序碼 小程序內(nèi)頁二維碼 第一步編輯素材 第二步搜索小程序名字,然后回車,下一步 第三步點(diǎn)擊‘獲取更多路徑’ 第四

    2024年02月15日
    瀏覽(31)
  • 微信小程序之生成二維碼

    微信小程序之生成二維碼

    ?var context = wx.createCanvasContext(\\\'mycanvas\\\');?// 獲取畫布 CanvasContext.fillText string text 在畫布上輸出的文本 number x 繪制文本的左上角 x 坐標(biāo)位置 number y 繪制文本的左上角 y 坐標(biāo)位置 number maxWidth 需要繪制的最大寬度,可選 CanvasContext.drawImage string imageResource 所要繪制的圖片資源(網(wǎng)絡(luò)

    2024年02月10日
    瀏覽(28)
  • 微信小程序 — 生成二維碼功能

    微信小程序 — 生成二維碼功能

    微信小程序?qū)崿F(xiàn)生成二維碼功能。需要用到canvas組件,設(shè)置 type為2d.? 需要使用js包 weapp-qrcode-canvas-2d https://github.com/DoctorWei/weapp-qrcode-canvas-2d weapp-qrcode-canvas-2d 是使用新版canvas-2d接口在微信小程序中生成二維碼(外部二維碼)的js包。canvas 2d 接口支持同層渲染且性能更佳,可大

    2024年02月09日
    瀏覽(24)
  • 微信小程序生成二維碼的 方式

    一:生成普通的二維碼 https://open.weixin.qq.com/sns/getexpappinfo?appid=xxxpath=xxx?a=123 appid:小程序的appid path: 小程序的路徑 a:小程序需要攜帶的參數(shù),不傳可以不寫 二:在微信開發(fā)文檔內(nèi)生成 步驟1.登錄微信公眾平臺(tái) 2.找到工具菜單 3.選擇生成小程序碼 具體里面的有生成規(guī)則,不懂得

    2024年02月12日
    瀏覽(24)
  • 微信小程序?qū)崿F(xiàn)預(yù)約生成二維碼

    微信小程序?qū)崿F(xiàn)預(yù)約生成二維碼

    業(yè)務(wù)需求 :點(diǎn)擊預(yù)約按鈕即可生成二維碼憑碼入校參觀~ 如下是博主自己寫的wxml: 以及wxss: 去Gitee下載工具包: 二維碼工具包 http://? https://gitee.com/WeiDoctor/weapp-qrcode-canvas-2d ? 下載zip: ? ? 將dist文件夾中的js文件全部復(fù)制到utils目錄下: 如下代碼必須完整的導(dǎo)入再頁面

    2024年04月15日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包