最近项目中涉及到小程序的生成二维码,很是头疼,经过多次摸索,整理出了自己的一些思想方法,如有不足,欢迎指正。

首先完全按照小程序的结构依次填坑。

pages--index.wxml

  1. <view class="wrap">
  2. <view>导游姓名:<text>{{guide.name}}</text></view>
  3. </view>
  4.  
  5. <view class="wrapCode">
  6. <view>导游证号:<text>{{guide.id}}</text></view>
  7. </view>
  8.  
  9. <view class="erCode">
  10. <canvas style="width: 650rpx;height: 650rpx;margin:80rpx auto;" canvas-id="qrcCanvas"/>
  11. </view>
  12.  
  13. <button formType="submit" class="login-btn" hover-class="none" bindtap='saveQrImg'>保存二维码到手机相册</button>

对于其他标签 以及结构我想应该不必多说了吧,但是canvas是重点,敲黑板。。。

pages--index.js

  1. Page({
  2. data: {
  3. aaa:'aaa://',//这个参数根据自己不同的需求自己定义
  4. guide:{
  5. id:'',
  6. name:''
  7. },
  8. canvasId: "qrcCanvas",// canvas的Id 因为下面用的到
  9. },

由于我的页面是跳转的 也就是在上个页面输入的相关信息,然后跳转到这个页面中的,所以在onLoad()函数中接收下参数

  1. onLoad: function (option) {
  2. this.setData({
  3. guide:option,
  4. })
  5. },

那下面就是最重要的了

  1. onReady: function () {
  2. let size = this.setCanvasSize();//动态设置画布大小
  3. let http = this.data.hlj+this.data.guide.id;
  4. console.log(http);
  5. this.createQrCode(http, this.data.canvasId, size.w, size.h);
  6. },
  7.  
  8. setCanvasSize(){
  9. var size = {};
  10. try {
  11. var res = wx.getSystemInfoSync();
  12. var scale = 750 / 686;//不同屏幕下canvas的适配比例;设计稿是750宽
  13. var width = res.windowWidth / scale;
  14. var height = width;//canvas画布为正方形
  15. size.w = width;
  16. size.h = height;
  17. } catch (e) {
  18. // Do something when catch error
  19. console.log("获取设备信息失败" + e);
  20. }
  21. return size;
  22. },
  23.  
  24. createQrCode(str, canvasId, cavW, cavH){
  25. QR.api.draw(str, canvasId, cavW, cavH);
  26. },
  27.  
  28. saveQrImg(){
  29. // let http = this.data.hlj + '510301198801305998';
  30. //把canvas转成图片 成功返回url
  31. wx.canvasToTempFilePath({
  32. canvasId: 'qrcCanvas',
  33. success(res) {
  34. wx.saveImageToPhotosAlbum({
  35. filePath: res.tempFilePath,
  36. success: function (res) {
  37. wx.showToast({
  38. title: '保存成功',
  39. icon: 'success',
  40. duration: 2000
  41. })
  42. },
  43. fail: function (res) {
  44. console.log(res)
  45. }
  46. })
  47. }
  48. })
  49. },

微信小程序之生成二维码的更多相关文章

  1. 微信小程序条码、二维码生成模块

    代码地址如下:http://www.demodashi.com/demo/13994.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...

  2. 微信小程序,获取二维码

    微信小程序,获取二维码 找到一篇很实用的博客,他已经写得很详细了,自己也懒得写,亲测有效 参考网址

  3. 转【微信小程序 四】二维码生成/扫描二维码

    原文:https://blog.csdn.net/xbw12138/article/details/75213274 前端 二维码生成 二维码要求:每分钟刷新一次,模拟了个鸡肋,添加了个按分钟显示的时 ...

  4. 微信小程序扫描普通二维码打开小程序的方法

    很久没有写博客了,之前换了一份工作,很久没有做Android开发了,现在转做前端开发了,记录一下遇到的问题及解决的方法. 最近做微信小程序开发,遇到一个需求,后台管理系统生成的问卷和投票会有一个二维码 ...

  5. 小程序canvas生成二维码图片踩的坑

    1:生成临时图片,保证画布被加载以及渲染(即本身不可以 hidden 或是 上级元素不可以 hidden 或是 wx:if 隐藏等) == > 建议:因为 canvas 的组件层级(z-inde ...

  6. 微信小程序 - 配置普通二维码跳小程序

    普通二维码跳小程序规则: https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html#%E5%8A%9F%E8%83%B ...

  7. 微信小程序获取普通二维码

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. 微信小程序带参数生成二维码

    wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/token', header: { 'content-type': 'application/ ...

  9. 小程序动态生成二维码,生成image图片

    前端: <image src="{{img_usrl}}" style="width:100%;height:104px;" bindlongtap=&q ...

随机推荐

  1. Redis教程(REmote DIctionary Server)——一个高性能的key-value数据库

    redis(REmote DIctionary Server)是什么? Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言 ...

  2. textarea回填数据显示自适应高度

    queryTextArea(){ var textAll = document.getElementById('templaInner').querySelectorAll("textare ...

  3. JavaWeb【四、JSP基础语法】

    简介 JSP--Java Server Pages,根本是一个简化的Servlet设计,实现了在Java中使用HTML标签. 特点 跨平台,安全性好,大型站点开发,企业级Web应用,大数据. 对比: ...

  4. java_day06_java高级特性

    Advance Java Programming 第六章: java语言高级特性(part1) 1.static修饰符 1)static变量 在类中,使用static修饰的成员变量,就是静态变量,反之 ...

  5. casperjs 源码

    1.首当其冲github 地址: https://github.com/casperjs

  6. 【转】make menuconfig/.config/Kconfig解析

    当执行#make menuconfig时会出现内核的配置界面,所有配置工具都是通过读取"arch/$(ARCH)/Kconfig"文件来生成配置界面,这个文件就是所有配置的总入口, ...

  7. linux常用命令(centos)

    linux 命令有很多,常用的很少. #######################系统相关############################ lsb_release -a 查看系统信息 cat ...

  8. 【leetcode】1275. Find Winner on a Tic Tac Toe Game

    题目如下: Tic-tac-toe is played by two players A and B on a 3 x 3 grid. Here are the rules of Tic-Tac-To ...

  9. keras手写数字识别

    import kerasimport timefrom keras.utils import np_utils start = time.time()(x_train, y_train), (x_te ...

  10. C# 计算小数

    private void button2_Click(object sender, EventArgs e) { ; List<string> list = new List<str ...