微信小程序前端根据内容生成二维码Qrcode(小程序开发 生成二维码)

在微信小程序开发项目中,后端返回的api接口数据中,有一个支付页面,这个支付页面网址在小程序中是打不开的,需要生成二维码让客户扫描支付,客户扫描二维码就会打开支付页面,支付项目金额!

微信小程序前端根据内容生成二维码Qrcode(小程序开发 生成二维码)

项目中生成的样例

1、需要下载封装好的qrcode的js文件,下载地址:夸克网盘分享

2、在我们需要在使用的页面将qrcode.js文件引入

import * as QRCode from '../../utils/qrcode.js'

3、首先微信小程序wxml文件中写入canvas标签

<canvas canvasId="myCanvas" style="width: 450rpx;height: 450rpx;background:#fff;margin: 0 auto;"></canvas>

4、如果有中文的话,需要一个方法来解决中文乱码的问题(没有可不写)

toUtf8(str) { //解决中文乱码的问题 var out, i, len, c; out = ""; len = str.length; //文本域值的长度 for (i = 0; i < len; i ) { c = str.charCodeAt(i); //返回值是UTF-16的代码单元值 0-65535之间的整数 参数:大于等于0(如果小于0或者等于大于字符串的长度 则返回nan) // console.log('cc',c); if ((c >= 0x0001) && (c <= 0x007F)) { out = str.charAt(i); // 从一个字符串中返回指定的字符 // console.log('out',out); //就是文本域的值 } else if (c > 0x07FF) { out = String.fromCharCode(0xE0 | ((c >> 12) & 0x0F)); out = String.fromCharCode(0x80 | ((c >> 6) & 0x3F)); out = String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); } else { out = String.fromCharCode(0xC0 | ((c >> 6) & 0x1F)); out = String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); } } return out; },

5、 获取可使用屏幕的宽高度的方法(px)

// 获取可使用窗口的框高度getWindowWH(){ var seeWH = {} // 往seeWH对象中新增窗口宽高度两个属性 try { const res = wx.getSystemInfoSync()// 获取设备信息 var w = res.windowWidth / (750 / 450) //可使用窗口的宽度 var h = res.windowWidth / (750 / 450) //可使用窗口的高度 seeWH.w = w seeWH.h = h } catch (e) { // Do something when catch error console.log('获取设备信息失败', e); } return seeWH},

6、创建画布的方法

// 创建画布 接收传递过来的几个实参drawCanvas(e,n,t,i){ var that=this // e:代表文本域的值 // n:canvasID // t:可使用窗口的宽度 // i:可使用窗口的高度 // that.data.bgVal:背景颜色 默认:#fff // that.data.clVal :前景颜色 默认:#000 //这里的 drawQrcode.api.draw 是引入封装好的js文件进来里面 的 draw方法 QRCode.api.draw(e,n,t,i,"","", that.data.bgVal, that.data.clVal)},

7、 用画布内容区域生成导出一个指定的大小图片 的方法

createImage(){ var that = this wx.canvasToTempFilePath({ canvasId:"myCanvas", //必选 success(res){ // 生成好了关闭loading效果 wx.hideLoading() console.log(res.tempFilePath) } })},

8、点击生成二维码按钮事件

// 点击生成二维码 createQRCode() { var that=this // 有文本域的值 提示loading效果 wx.showLoading({ title: "生成中" }) // 获取可使用宽高度 let obj= that.getWindowWH() // 调用创建画布的方法,传递参数 that.drawCanvas('https://www.vipshare8.com/', "myCanvas", obj.w, obj.h) setTimeout(()=>{ //调用 把当前画布内容导出生成指定大小的图片 that.createImage() },300) } },

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月9日 下午5:35
下一篇 2024年5月10日 上午8:03

相关推荐

  • 河南省教育厅科研项目结项通知(河南省教育厅科研项目结项)

    河南省教育厅科研项目结项 近年来,河南省教育厅一直致力于推动教育事业的发展,通过大量的投入和不断努力,取得了显著的成效。在这个过程中,我们也不断开展着各种科研项目,为教育事业的发展…

    科研百科 2024年4月4日
    83
  • LIMS系统的设计与实现需要遵循哪些标准和准则?

    实验室信息化LIMS系统的运行与实验室的资源和业务实际密切相关,建设实验室信息管理系统(LIMS) 前需先根据实验室标准范围确定LIMS建设的目标;在根据建设目标确定LIMS建设的…

    科研百科 2023年4月20日
    166
  • 行业分析:陪玩行业直播,还能做多久?(陪玩直播是干什么)

    编辑导读:伴随直播的浪潮和游戏行业的火爆,陪玩行业逐渐兴起,并在各大平台的助推下迅速发展。但陪玩行业仍然尚未成熟,良性的市场模式尚未形成,还存在着诸多问题。文章从陪玩行业的当前现状…

    科研百科 2024年5月22日
    89
  • 国防科研试制费管理办法(财防【2019】18号)

    国防科研试制费管理办法(财防【2019】18号) 为加强国防科研试制费的管理,提高科研试制费的使用效率,根据《国防科技工业条例》等相关法规,我部制定了《国防科研试制费管理办法》(以…

    科研百科 2024年11月21日
    330
  • 公共图书馆学校图书书店业务管理系统(图书馆公共服务平台)

    在这个每天都在进步的时代,寿就科技的发展,软件产品网认为作为一个公共场所图书馆,有什么作用大家都知道,图书馆管理系统的工作流程非常简单,图书馆管理系统合运用了管理科学,系统科学,运…

    科研百科 2023年5月25日
    139
  • 东营市协同办公系统

    东营市协同办公系统:提高工作流程的效率和灵活性 随着现代办公环境的不断演变,协同办公系统已经成为了现代企业必须拥有的工具之一。东营市作为山东省的一个重要城市,其协同办公系统也应该与…

    科研百科 2025年1月2日
    0
  • 阿里开源低代码平台

    阿里开源低代码平台:让软件开发变得更加高效和简单 随着数字化时代的到来,软件开发已经成为了各行各业不可或缺的一部分。然而,传统的高代码开发方式已经无法满足日益多样化的用户需求,因此…

    科研百科 2024年11月10日
    1
  • 协同办公市场

    协同办公市场概述 随着数字化时代的到来,协同办公市场的需求日益增长。在这个市场中,企业需要使用各种软件和工具来协作和协调员工的工作,以提高效率和生产力。协同办公市场包括了各种办公软…

    科研百科 2025年1月5日
    0
  • vue项目实战精粹汇总(最全vue项目实战)

    大家好,我是Echa 哥,祝大家开工大吉!万事如意! 前言 vue作为前端主流的3大框架之一,目前在国内有着非常广泛的应用,由于其轻量和自底向上的渐进式设计思想,使其不仅仅被应用于…

    科研百科 2022年7月16日
    217
  • 协同办公 英语

    协同办公(Co-ordinating Work)是指多人合作完成一项任务或活动的过程,通常涉及不同的部门或组织之间的协作。在现代企业中,协同办公已成为一种重要的工作方式,因为它可以…

    科研百科 2025年1月5日
    1