目前市场上二维码识别的软件或者网站越来越多,可是真正方便,无广告的却少之很少。

于是,自己突发奇想做了一个微信二维码识别的小程序。

包含功能:

1、识别二维码

①普通二维码

②条形码

③只是复制解析出来的数据

2、生成二维码

①只是从粘贴板生成二维码

软件截图:

体验二维码:



以下为主要代码

index.js

  1. // pages/main/index.js
  2. var QR = require("../../utils/qrcode.js");
  3. Page({
  4. data: {
  5. canvasHidden: false,
  6. maskHidden: true,
  7. imagePath: '',
  8. placeholder: 'https://www.mojxtang.club/',//默认二维码生成文本
  9. placeholder_data:"点击自动获取剪切板的内容!",
  10. QRcode:"",
  11. bindfocus_value:"",
  12. input_state:0
  13. },
  14. onLoad: function (options) {
  15. // 页面初始化 options为页面跳转所带来的参数
  16. var size = this.setCanvasSize();//动态设置画布大小
  17. var initUrl = this.data.placeholder;
  18. this.createQrCode(initUrl, "mycanvas", size.w, size.h);
  19. },
  20. onReady: function () {
  21.  
  22. },
  23. onShow: function () {
  24. var that = this;
  25. that.setData({
  26. input_state:0
  27. })
  28. // 页面显示
  29. },
  30. onHide: function () {
  31. // 页面隐藏
  32. },
  33.  
  34. onUnload: function () {
  35. // 页面关闭
  36.  
  37. },
  38. //适配不同屏幕大小的canvas
  39. setCanvasSize: function () {
  40. var size = {};
  41. try {
  42. var res = wx.getSystemInfoSync();
  43. var scale = 750 / 686;//不同屏幕下canvas的适配比例;设计稿是750宽
  44. var width = res.windowWidth / scale;
  45. var height = width;//canvas画布为正方形
  46. size.w = width;
  47. size.h = height;
  48. } catch (e) {
  49. // Do something when catch error
  50. console.log("获取设备信息失败" + e);
  51. }
  52. return size;
  53. },
  54. createQrCode: function (url, canvasId, cavW, cavH) {
  55. //调用插件中的draw方法,绘制二维码图片
  56. QR.api.draw(url, canvasId, cavW, cavH);
  57. setTimeout(() => { this.canvasToTempImage(); }, 1000);
  58.  
  59. },
  60. //获取临时缓存照片路径,存入data中
  61. canvasToTempImage: function () {
  62. var that = this;
  63. wx.canvasToTempFilePath({
  64. canvasId: 'mycanvas',
  65. success: function (res) {
  66. var tempFilePath = res.tempFilePath;
  67. console.log(tempFilePath);
  68. that.setData({
  69. imagePath: tempFilePath,
  70. // canvasHidden:true
  71. });
  72. },
  73. fail: function (res) {
  74. console.log(res);
  75. }
  76. });
  77. },
  78. //点击图片进行预览,长按保存分享图片
  79. previewImg: function (e) {
  80. var img = this.data.imagePath;
  81. console.log(img);
  82. wx.previewImage({
  83. current: img, // 当前显示图片的http链接
  84. urls: [img] // 需要预览的图片http链接列表
  85. })
  86. },
  87. formSubmit: function (e) {
  88. var that = this;
  89. var url = e.detail.value.url;
  90. that.setData({
  91. maskHidden: false,
  92. QRcode:""
  93. });
  94. wx.showToast({
  95. title: '生成中...',
  96. icon: 'loading',
  97. duration: 2000
  98. });
  99. var st = setTimeout(function () {
  100. wx.hideToast()
  101. var size = that.setCanvasSize();
  102. //绘制二维码
  103. that.createQrCode(url, "mycanvas", size.w, size.h);
  104. that.setData({
  105. maskHidden: true
  106. });
  107. clearTimeout(st);
  108. }, 2000)
  109.  
  110. },
  111. rq_jiema:function(evt){
  112. var that = this;
  113. console.log(evt);
  114. wx.scanCode({
  115. success: function (res) {
  116. console.log(res);
  117. that.setData({
  118. QRcode: res.result
  119. })
  120.  
  121. }
  122. })
  123. },
  124. Copy_to_clipboard:function(evt){
  125. var that = this;
  126. wx.setClipboardData({
  127. data: evt.currentTarget.dataset.text,
  128. success(res) {
  129.  
  130. }
  131. })
  132. },
  133. bindfocus_value:function(){
  134. var that = this;
  135. if (that.data.input_state == 0){
  136. wx.showModal({
  137. title: '提示',
  138. content: '是否将剪切板的内容,制作成二维码?',
  139. success: function (res) {
  140. if (res.confirm) {
  141. wx.getClipboardData({
  142. success(res) {
  143. that.setData({
  144. input_state:0,
  145. bindfocus_value: res.data
  146. })
  147. }
  148. })
  149. } else {
  150. that.setData({
  151. input_state: 1,
  152. bindfocus_value: ""
  153. })
  154. }
  155. }
  156.  
  157. })
  158. }
  159.  
  160. }
  161.  
  162. })

博客地址:http://blog.mojxtang.com

微信小程序二维码识别的更多相关文章

  1. 图片的URL上传至阿里云OSS操作(微信小程序二维码返回的二进制上传到OSS)

    当我们从网络中获取一个URL的图片我们要存储到本地或者是私有的云时,我们可以这样操作  把url中的图片文件下载到本地(或者上传到私有云中)  public String uploadUrlToOss ...

  2. Java 获取微信小程序二维码(可以指定小程序页面 与 动态参数)

    一.准备工作 微信公众平台接口调试工具 小程序的唯一标识(appid) 小程序的密钥(secret) 二.获取access_token 打开微信公众平台接口调试工具,在参数列表中输入小程序的appid ...

  3. 微信小程序-二维码汇总

    小程序二维码在生活中的应用场景很多,比如营销类一物一码,扫码开门,扫码付款等...小程序二维码分两种? 1.普通链接二维码 即跟普通的网站链接生成的二维码是一个意思,这种二维码的局限性如下: 对于普通 ...

  4. 微信小程序二维码推广统计

    微信小程序可以通过生成带参数的二维码,那么这个参数是可以通过APP的页面进行监控的 这样就可以统计每个二维码的推广效果. 今天由好推二维码推出的小程序统计工具HotApp小程序统计也推出了带参数二维码 ...

  5. php生成微信小程序二维码源码

    目前有3个接口可以生成小程序码,开发者可以根据自己的需要选择合适的接口.第一步:获取   access_token public function getWxAccessToken(){ $appid ...

  6. 微信小程序二维码是无法识别二维码跳转到小程序

    今天测试了一下,微信小程序圆形二维码是不能直接识别跳转到小程序: 但h5页面的那种微信公众号二维码是可以直接识别

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

    tip:通过该接口,仅能生成已发布的小程序的二维码. tip:可以在开发者工具预览时生成开发版的带参二维码. tip:接口A加上接口C,总共生成的码数量限制为100,000,请谨慎调用. tip: P ...

  8. 微信小程序参数二维码6问6答

    微信小程序参数二维码[基础知识篇],从6个常见问题了解小程序参数二维码的入门知识. 1.什么是小程序参数码? 微信小程序参数二维码:针对小程序特定页面,设定相应参数值,用户扫描后进入相应的页面. 2. ...

  9. node 无脑生成小程序二维码图

    RT 新建createwxaqrcode.js: const request = require('request') const fs = require('fs') // eg:生成购物车列表圆形 ...

随机推荐

  1. 动态代理(JDK实现)

    JDK动态代理,针对目标对象的接口进行代理 ,动态生成接口的实现类 !(必须有接口) public class ProxyDemo { //通过方法的返回值得到代理对象            方法参数 ...

  2. 负载均衡群集LB

    负载均衡群集是目前企业用得最多的群集类型,通过主节点负载调度器(Director),使用特定的分流算法,将来自客户机的访问请求分担给多个服务器节点共同处理,从而缓解整个系统的负载压力,响应更多请求:群 ...

  3. win7 下如何安装 Microsoft Web Application Stress Tool

    Microsoft Web Application Stress Tool是一个简单易用的性能压力测试工具,但因为其诞生的年代较早,在目前的win7系统下运行,会存在一些兼容性的问题,以下是我在实际使 ...

  4. ArrayList集合与List与数组的区别

    import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.Lis ...

  5. 社区发现SLPA算法

    社区(community)定义:同一社区内的节点与节点之间关系紧密,而社区与社区之间的关系稀疏. 设图G=G(V,E),所谓社区发现是指在图G中确定nc(>=1)个社区C={C1,C2,..., ...

  6. 性能测试 vs 负载测试 vs 压力测试

    在做一些软件测试工作时,常常会被提及性能测试.负载测试.压力测试,这也是在软件测试方面最容易混淆的三个概念.之前和一个测试大牛聊天,他和我说常常面试一些测试人员会问一些这样的问题,大多人认为负载测试等 ...

  7. C# ListView用法详解 很完整

    一.ListView类 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设 ...

  8. git已经删除了远程分支,本地仍然能看到

    1.使用 git branch -a 命令可以查看所有本地分支和远程分支,发现很多在远程仓库已经删除的分支在本地依然可以看到. 2.使用命令 git remote show origin,可以查看re ...

  9. Neo4j安装&入门&一些优缺点(转)

    本篇将介绍Neo4j的安装,入门,和自己使用了一段时间后发现的优点缺点,争取简洁和实用. 如果你是第一次接触Neo4j,并且之前也都没接触过类似的Graph Database的话,建议先浏览一下我之前 ...

  10. 【ORACLE】ID 2299494.1 安装Oracle 11g 86%报错:Error in invoking target 'agent nmhs' of makefile

    参考: ID 2299494.1 In this Document   Symptoms   Changes   Cause   Solution   References APPLIES TO: O ...