微信小程序实战教程1503---生成二维码

在微信小程序中,如果我们可以自己将指定内容生成二维码,出示给别人,将是一个比较有用的功能。但是微信小程序API中,目前暂时还没有这个功能,但是我们可以通过变通的方法,来实现这一功能。

本文所提到的方法,是受到这篇博文的启发(http://blog.csdn.net/sinat_17775997/article/details/53608479),但是具体实现细节有些不同,读者可以结合那篇博文以及配套的开源项目(https://github.com/demi520/wxapp-qrcode),加深对这一主题的理解。

我们首先定义需要生成二维码的内容,这个内容可以由用户来输入,程序刚一进入时,就显示缺省值的二维码。

我们首先定义界面元素:

<view class="container"><!-- 生成二维码 --><view class="input-row"><label>内容</label><input value='{{qrcStr}}' class="qrcInput" bindblur="onQrcStrBlur" type="text" maxlength="255" placeholder="{{qrcPhld}}"/></view><button class="genQrcBtn" type="primary" bindtap="onGenQrc">生成二维码</button><view class="img-box"><canvas bindtap="onPreviewQrc" hidden="{{canvasHidden}}" style="width: 686rpx;height: 686rpx;background:#f1f1f1;" canvas-id="qrcCanvas"/></view>
</view> 
<view hidden="{{maskHidden}}" class="mask"></view>
<view class="canvas-box"></view>

在格式定义文件(*.wxss)中,添加如下配套格式文件:

.container {padding-top: 0rpx;
}.img-box {padding: 32rpx;background-color: #fff;border-bottom: 1rpx solid #e5e5e5;position: relative;
}.img-box image {width: 686rpx;height: 686rpx;background-color: #f9f9f9;
}.input-row{margin: 30rpx auto;display: flex;align-items: center;height: 88rpx;padding: 0 32rpx; background-color: #fff;font-size: 34rpx;color: #000;
}.input-row input {margin-left: 100rpx;flex: 1;
}.qrcInput {border: 1rpx solid #e5e5e5;
}.genQrcBtn {width:686rpx;margin: 60rpx auto;
}.mask {position: fixed;top: 0;left: 0;z-index: 3; width: 100%;height: 100%;opacity: 0;
}

下面我们来定义页面中用到的变量,在页面程序文件中(*.js)的Page对象的data属性内,定义如下变量:

Page({data: {qrcStr: '',qrcPhld: '维康云u=1001',maskHidden:true,imagePath:'',},canvasId: "qrcCanvas",
......

下面是在页面程序文件(*.js)文件的Page对象中,添加onReady函数,在其中获取到屏幕尺寸,并将缺省内容生成二维码,并绘制到界面上:

onReady: function() {this.size = this.setCanvasSize();//动态设置画布大小this.createQrCode(this.data.qrcPhld, this.canvasId, this.size.w, this.size.h);},

这里面用到两个Page对象的函数,我们先来看获取Canvas尺寸的函数:

//适配不同屏幕大小的canvassetCanvasSize:function(){var size={};try {var res = wx.getSystemInfoSync();var scale = 750/686;//不同屏幕下canvas的适配比例;设计稿是750宽var width = res.windowWidth/scale;var height = width;//canvas画布为正方形size.w = width;size.h = height;} catch (e) {// Do something when catch errorconsole.log("获取设备信息失败"+e);} return size;} ,

下面来看具体的二维码生成并绘制过程,如下所示:

createQrCode:function(str,canvasId,cavW,cavH){//调用插件中的draw方法,绘制二维码图片QR.qrApi.draw(str,canvasId,cavW,cavH);},

上面的代码中需要在页面程序文件(*.js)文件顶部引入qrcode.js,如下所示:

var QR = require("../../utils/qrcode.js");

具体的文件大家可以到https://github.com/demi520/wxapp-qrcode的utils目录中下载。

如果上面的程序没有问题,读者运行上述程序,应该就可以显示出缺省内容的二维码了,如下图所示:


下面我们来完成用户输入指定内容,点击生成二维码按钮,生成指定内容的二维码图片。我们先来获取用户输入的要用于生成二维码的内容:

onQrcStrBlur: function(e) {this.setData({qrcStr: e.detail.value});},

因为我们在页面中定义的输入框失去焦点的函数为onQrcStrBlur,在这里我们取出输入框内容,赋给变量qrcStr。

当用户点击生成二维码按钮时,我们将指定内容生成二维码绘制到界面中:

onGenQrc: function(e) {this.createQrCode(this.data.qrcStr, this.canvasId, this.size.w, this.size.h);}

截止目前为止,我们就成功实现了在微信小程序中,为指定内容生成二维码图片的功能,在这里我们实际上借用了Canvas将二维码绘制到了界面上。关于微信小程序的Canvas,可以涉及的内容非常多,大量可以重点关注一下,可以做出很多非常有意思的应用。

如果大家觉得光看文字不过瘾,或者还有不明白的地方,建议大家看一下CSDN学院“小程序实战教程”(http://edu.csdn.net/course/detail/3009)第15章的第3个视频内容,老师将带领大家一步一步实现这一功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/143076.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

记一次 Android 源码编译刷机过程

0 背景 为了能在开发设备上运行 adb root 命令得到 root 权限&#xff0c;获得更加强大的调试能力、开发体验&#xff0c;方便以后阅读源码时 Debug 跟踪、进行定制化开发&#xff0c;需要编译 Android 源码 userdebug 版本并刷入手机当中。 1 准备 1.1 硬盘 首先 Android 源…

JavaScript 基础 DOM (四)

正则表达式正则表达式 正则基本使用 定义规则 const reg /表达式/其中/ /是正则表达式字面量正则表达式也是对象 使用正则 test()方法 用来查看正则表达式与指定的字符串是否匹配 如果正则表达式与指定的字符串匹配 &#xff0c;返回true&#xff0c;否则false reg.test(…

苹果id怎么注册?老果粉教你创建新的Apple ID

苹果ID怎么注册&#xff1f;苹果ID又叫做Apple ID&#xff0c;这是我们用来访问Apple服务的账号&#xff0c;包括iCloud、App Store在内的苹果手机自带应用都需要我们登陆Apple ID才可以正常使用。该账号不仅仅只是一个登录账号&#xff0c;其中包含了我们大量的隐私信息&#…

如何重新设置苹果id密码_ios游戏apple账号分享韩国苹果id密码大全

韩区id申请注册流程和在国内申请注册账号流程不一样&#xff0c;所选地区和填写信息要求不一样&#xff0c;现在很多游戏或者其他软件只能在日本地区发行&#xff0c;想要下载这些软件就必须要注册日本地区的id账号就能下载。 申请注册韩区id除了要注意选择地区之外&#xff0c…

苹果注册会员账号

下面介绍个人开发者账号申请流程 1.1首先打开苹果开发者中心 如果已经注册过apple id&#xff0c;跳过注册&#xff0c;直接看后面步骤登录开发者中心申请&#xff01; 点击立即创建您的apple id 2、跳转到apple id申请页面填写相关信息 名字用汉字或者拼音写上去&#xff08;注…

苹果开发者公司账号注册流程注册新的苹果Apple Id并双重验证步骤

大概分为几个步骤&#xff1a; 1.需要一个未注册过开发者的苹果Apple Id &#xff08;如果没有重新注册详见下文&#xff09; 2.Apple Id需要开通双重验证 &#xff08;详见下文&#xff09; 3.申请公司的邓白氏码 申请流程&#xff1a;https://www.jianshu.com/p/31b7aa616…

Apple ID 的申请流程

Apple ID 申请可以在通过PC端申请也可以在IOS系统的手机上申请。本节就说说在PC端的申请流程。 1、打开苹果帐户注册网站&#xff1a;appleid.apple.com/cn&#xff0c;然后点击右上角的“创建 Apple ID” 2、按照提示填写对应的信息 回答的问题注意字符要大于等于3 然后…

苹果礼品卡导致Apple ID被封,怎么避免?

下载外区的苹果App常常需要买外区对应国家的礼品卡&#xff0c;尤其是玩游戏&#xff0c;我们游戏工会里面时不时有人的Apple ID被封&#xff0c;经历多了经验也就慢慢丰富了&#xff0c;后来在群里就专门强调几点注意事项&#xff0c;经过一年验证完全有效&#xff0c;基本上杜…

此apple id尚未用于App Store(如需帮助,请联系iTunes支持,网址www.apple.com/support/itunes/ww/)

使用MacBook Pro做开发&#xff0c;结果新注册的Apple ID在登录App Store的时候出现此apple id尚未用于App Store 填写相关信息时出现如需帮助&#xff0c;请联系iTunes支持&#xff0c;网址www.apple.com/support/itunes/ww/&#xff0c;如图&#xff1a; 解决办法&#x…

最新Apple苹果开发者账号AppleID注册流程

1、登陆开发者官网&#xff1a; https://developer.apple.com/ 2、如果有苹果设备&#xff0c;可以直接使用你设备的appleID&#xff0c;后面的步骤一样的&#xff0c;这是少了这个注册过程。下面说说没有appleID的注册流程。 点击开发者官网右上角account,进入开发者登陆页…

python加密算法

首先加密算法要引入hashlib模块&#xff0c;在python中用import hashlib引入 接下来如果要对一串数字进行加密操作如下 这里用a变量来接接收&#xff0c;md5里的数字就是要加密的内容 然后再内容后面加上.encode&#xff08;“utf-8”&#xff09;因为hashlib是对二进制进行…

python 代码加密

Python代码加密步骤 1、准备文件 main.py为要加密的主脚本import sys from PyQt5.QtWidgets import QApplication, QWidgetdef show_w():显示窗口app QApplication(sys.argv) # 所有的PyQt5应用必须创建一个应用&#xff08;Application&#xff09;对象。# sys.argv参数是一个…

python 加密-对exe加密

Python 是一种面向对象的解释型计算机程序设计语言&#xff0c;Python 语言写的程序不需要编译成二进制代码&#xff0c;可以直接从源代码运行程序。 在计算机内部&#xff0c;Python解释器把源代码转换成称为字节的中间形式&#xff0c;然后再它翻译计算机使用的机器语言并运行…

python封装成dll_Python加密成.so或dll

Python加密 如何封装Python代码&#xff0c;让别人方便调用&#xff0c;同时又能起到加密的作用&#xff0c;本文介绍如何封装成so文件和dll文件以及调用方式 首先需要配置环境 安装Cython gcc Linux下的.so文件 创建要封装的文件mytest.py import datetime class DataCe…

Python加密生成so文件与dll

Python加密 如何封装Python代码&#xff0c;让别人方便调用&#xff0c;同时又能起到加密的作用&#xff0c;本文介绍如何封装成so文件和dll文件以及调用方式 首先需要配置环境 安装Cython gcc Linux下的.so文件 创建要封装的文件mytest.py import datetime class DataCen…

用 Python 加密文件

生活中&#xff0c;有时候我们需要对一些重要的文件进行加密&#xff0c;Python 提供了诸如 hashlib&#xff0c;base64 等便于使用的加密库。 但对于日常学习而言&#xff0c;我们可以借助异或操作&#xff0c;实现一个简单的文件加密程序&#xff0c;从而强化自身的编程能力。…

python 算法加密

加密代码片段样例 文件名&#xff1a;iter_n.py import timedef iter_from_n(n):list_n []for index,value in enumerate(range(n)):list_n.append([index,value])return list_nif __name__"__main__":t1 time.time()iter_from_n(100000)t2 time.time()print (&…

Python加密word文档

大家好&#xff0c;这里是滑稽研究所。本期我们需要完成一个对word文档加密的程序。在翻阅了网上一些资料和文章后&#xff0c;认为使用‘异或’来加密word文档是比较方便且安全性有保障的。   在此之前&#xff0c;我们先了解一下异或是什么。简单来说&#xff0c;如果a、b两…

python常见加密方式总结踩坑小贴士

本文是向大家介绍python中常见的一些加密方式&#xff0c;在使用python的时候遇到数据加密的情况时&#xff0c;可以根据实际场景来选择加密的方式对数据进行加密&#xff0c;加强数据传输的安全性。 一.前言 日常工作中经常会看到各种加密算法&#xff0c;今天给大家带来的是…

常见的加密方式之python实现

文章目录 前言MD5加密sha1加密SHA256DES加密AES加密AES的ECB 模式实现AES的CBC 模式实现RSA加密 前言 常见的加密方式之python实现 编码与解码 通常所说的加密方式&#xff0c;都是对二进制编码的格式进行加密的&#xff0c;对应到Python中&#xff0c;则是我们的Bytes。所以…