当前位置:   article > 正文

原生小程序生成二维码并保存到本地

原生小程序生成二维码并保存到本地

需求:我要在一个页面中生成一个二维码,并且这个二维码可以长按保存到本地或者发送给好友;

我这里是将生成的canvas二维码转换成图片,利用长按图片进行保存或转发

效果图:

第一步先下载对应的包:

npm install weapp-qrcode --save

第二步: wxml

        我们需要准备一个生成二维码的canvas

<canvas class="pf canvas" style="width:260rpx;height:260rpx;" canvas-id="myQrcode" id="myQrcode"></canvas>

canvas-id="myQrcode"        这个id是生成二维码的时候需要

id="myQrcode"        这个id是转换图片的时候需要

        还需要一个存放图片的image (图片的位置自定义)

<image show-menu-by-longpress="true" src="{{qrcodeUrl}}" mode="aspectFit"></image>

show-menu-by-longpress="true"        必须存在

 第三步:JS

        先导入weapp-qrcode包

  1. import drawQrcode from 'weapp-qrcode'

       data中定义需要用到的变量

  1. data: {
  2. showCodeFn:false,
  3. qrcodeUrl:''
  4. },

        开始生成二维码 

  1. onLoad(options) {
  2. var that = this
  3. drawQrcode({
  4. width:130,
  5. height:130,
  6. canvasId: 'myQrcode',
  7. text: config.temporaryUrl+'wechat/unit/'+options.unitId,
  8. callback:function(e){
  9. //我这里判断如果二维码生成成功就调用转换图片的方法,万一在没生成二维码之前,用户点击了图片的,报错或者看不见就尴尬了
  10. that.drawImg()
  11. }
  12. })
  13. },

至于需要在哪个生命周期函数中生成二维码,自己定

         将二维码转换成图片的方法

  1. drawImg(){
  2. var that = this
  3. // 创建一个选择器查询对象
  4. const query = wx.createSelectorQuery();
  5. // 执行查询并获取 canvas 节点的实例
  6. query.select('#myQrcode').boundingClientRect()
  7. // 查询结束后执行回调函数
  8. query.exec((res) => {
  9. if (res[0]) {
  10. // res[0] 是 canvas 节点信息,确保节点存在
  11. wx.canvasToTempFilePath({
  12. canvasId: 'myQrcode',
  13. success(res) {
  14. that.setData({
  15. //因为的的需求是点击某个地方,才让图片显示,所以在没生成图片之前,先把需要点击的那个地方隐藏了,等生成图片成功后,再放出来,所以这里是控制那个点击地方的显示/隐藏
  16. showCodeFn:true
  17. })
  18. console.log('查询成功')
  19. const tempFilePath = res.tempFilePath;
  20. console.log(tempFilePath);
  21. that.setData({
  22. //这是图片地址
  23. qrcodeUrl: tempFilePath
  24. })
  25. },
  26. fail(err) {
  27. console.error( err);
  28. }
  29. });
  30. } else {
  31. console.error('未能找到对应的 canvas 节点');
  32. }
  33. });
  34. },

完成 ✿✿ヽ(°▽°)ノ✿

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/837545
推荐阅读
相关标签
  

闽ICP备14008679号