新版微信小程序通过接口获取背景图和二维码(页面)

使用最新版微信小程序,通过接口去获取背景图,二维码

官方文档canvas | 微信开放文档 (qq.com)

二维码文档:获取小程序码 | 微信开放文档 (qq.com)

此方法使用canvas画布绘制出来二维码,是一个单独的页面,如果是想点击显示弹窗出来的那种,就需要写一个点击事件,去调用就行了

wxml:

<view class="promotion-head">
  <view class="promotion-background">
    <image src="/image/tome.jpg" mode=""/>
  </view>
  <canvas type="2d" id="myCanvas" ></canvas>
</view> 

js:

代码中,请求接口的方式是url: getApp().globalData.url + '/api/personal/getWxcode',

这个方法是提取了公共部分,将接口的前半部分写到全局,使用的时候调用一下,再将后段接口补齐,若和代码段中方法不一样就直接将getApp到加号位置删除就行,直接将自己的接口写全

拿数据的时候是在接口里面直接去写,是因为试过了很多办法,在接口之外的话没办法拿到那个code,也许是自己方法使用不当..当然,肯定不值这一种方法,可以多尝试,这个方法也是和朋友沟通,看了他的方法才整出来的

Page({
  data: {
    code: '',
  },
  onReady() {
    wx.request({
      url: getApp().globalData.url + '后半接口域名',
      method: "POST",
      data: {
        //其余数据根据自己接口所需去拿
      },
      success: (res) => {
        var code = res.data;
        console.log(code);
        const query = wx.createSelectorQuery()
        query.select('#myCanvas')
          .fields({
            node: true,
            size: true
          })
          .exec((res) => {
            const canvas = res[0].node
            const ctx = canvas.getContext('2d')
            const dpr = wx.getSystemInfoSync().pixelRatio
            canvas.width = res[0].width * dpr // 获取宽
            canvas.height = res[0].height * dpr // 获取高
            ctx.scale(dpr, dpr)
            // 到这里就可以直接绘制
            let image = canvas.createImage(); //创建iamge实例
            image.src = '/image/friend.jpg'; // 引入本地图片,也可以使用网络路径的图片
            image.onload = function () {
              ctx.drawImage(image, 0, 0, 289, 370); // 背景图
              // 绘制base64图片
              //声明文件系统
              const fs = wx.getFileSystemManager();
              var times = new Date().getTime();
              var codeimg = wx.env.USER_DATA_PATH + '/' + times + '.png';
              //将base64图片写入
              fs.writeFile({
                filePath: codeimg,
                data: code.slice(22), // code就是接口返回的base64数据(分割掉前面的data:image/png;base64,)
                encoding: 'base64',
                success: () => {
                  wx.createSelectorQuery().select('#myCanvas').fields({
                      node: true,
                      size: true
                    })
                    .exec((res) => {
                      let ctx = res[0].node.getContext('2d'); //getContext返回Canvas 的绘图上下文
                      let canvas = res[0].node;
                      const bg = canvas.createImage();
                      bg.src = codeimg;
                      bg.onload = function () {
                        ctx.drawImage(bg, 76, 175, 140, 140);
                      }
                    })
                }
              });
            }
          })
      }
    })
 
  }
})

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在微信小程序获取二维码,可以使用微信提供的API。通过调用获取小程序二维码API,你可以生成一张小程序二维码图片。 你可以参考微信官方文档中的相关内容,其中包括获取二维码的详细说明和示例代码。 除了普通二维码外,你还可以下载不同尺寸的普通二维码小程序二维码。通过点击下载按钮,你可以获取不同尺寸的二维码图片。 需要注意的是,通过该接口生成的小程序二维码是永久有效的。但是,生成二维码的数量是有限制的,请谨慎使用。并且,用户扫描该码后将直接进入对应页面。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [微信小程序学习之路——API获取二维码](https://blog.csdn.net/CSDN_XUWENHAO/article/details/89165601)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [生成微信小程序发布上线后的二维码获取微信小程序二维码微信小程序二维码如何生成?](https://blog.csdn.net/Shimeng_1989/article/details/126405337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值