微信小程序生成自定义参数二维码

微信小程序生成自定义参数二维码

  • 前言
  • 实现
  • 尾巴

前言

最近项目中要用到二维码分享功能,需要封装一些自定义的参数通过二维码分享。查看官方文档,发现系统提供了生成二维码的功能,但是细看才发现官方提供的接口其实是生成小程序二维码,通过扫描二维码可以进入小程序指定的页面。显然官方的API无法满足我们的要求,接下来就将项目中离线生成带自定义参数的二维码的方法分享给大家。

实现

老规矩,先上图镇楼
在这里插入图片描述
有人可能会说,你会不会放的是一张二维码图片?
在这里插入图片描述
接下来我们就不卖关子了,其实核心的就是一个js类库。然后里面封装好了生成二维码、导出二维码等方法。类库中通过canvas相关的API最终将二维码绘制在canvas上面。当然小程序里面本来是没有这个类库的,是从html生产二维码的一个库(qrcodejs)移植修改过来的,接下来我们就直接上代码了。

// wxml文件
<view class="page"><canvas style="width:{{qrcodeWidth}}px; height:{{qrcodeWidth}}px;margin-top:60px;" canvas-id='canvas' bindlongtap='save'></canvas><button type="primary" style="margin-top:100rpx;" bindtap="goscan">扫描相册二维码</button>
</view>
//js文件
var QRCode = require('../../utils/qr-core.js')
var qrcode = null;
var that;
Page({data: {qrcodeWidth: 0},onLoad: function () {that = this//获取canvas对象const ctx = wx.createCanvasContext('canvas')const rate = wx.getSystemInfoSync().windowWidth / 750//二维码宽高var qrcodeWidth = rate * 400that.setData({qrcodeWidth: qrcodeWidth})qrcode = new QRCode('canvas', {usingIn: that,width: qrcodeWidth,height: qrcodeWidth,colorDark: "#000000",//前景颜色colorLight: "white",//背景颜色correctLevel: QRCode.CorrectLevel.H,})qrcode.makeCode('hello world!')},savereal() {//授权成功之后,保存二维码到相册console.log('savereal')qrcode.exportImage(function (path) {console.log('path : ' + path)wx.saveImageToPhotosAlbum({filePath: path,success: function (data) {wx.showToast({title: '保存成功,请去手机相册查看',icon: 'none'})},fail: function (err) {wx.showToast({title: '保存失败',icon: 'none'})}})}, this)},// 长按保存save: function () {console.log('save')wx.showActionSheet({itemList: ['保存图片'],success: function (res) {console.log(res.tapIndex)if (res.tapIndex == 0) {that.getAlbumScope()}}})},//获取访问相册授权信息getAlbumScope() {wx.getSetting({success(res) {if (!res.authSetting['scope.writePhotosAlbum']) {wx.authorize({scope: 'scope.writePhotosAlbum',success() {// 用户已经同意权限that.savereal()console.log('用户同意授权')},fail() {console.log('用户拒绝授权')wx.showModal({title: '提示',content: '需要访问您的相册将图片保存',showCancel: false,success: function (res) {if (res.confirm) {wx.openSetting({success: function (data) {if (data.authSetting["scope.writePhotosAlbum"] === true) {that.savereal()} else {wx.showToast({title: '获取授权失败',icon: 'none',duration: 1000})}}})}}})}})} else {that.savereal()}}})},//调用微信二维码扫描功能并将返回结果弹出goscan(){wx.scanCode({success: (res) => {console.log(res)wx.showToast({title: res.result,icon: 'none',duration: 3000})},fail: (res) => {console.log(res)}})}
})

代码的逻辑很简单,js中已经做好了注释,如果需要生成二维码可以参考我文中的方法

由于生成二维码的js文件较大,就不在这里贴出代码了,直接放百度网盘 百度网盘链接 提取码: tphe

在这里插入图片描述

尾巴

如果你喜欢我的文章,欢迎给我点赞,评论,谢谢!

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

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

相关文章

微信小程序内,生成自定义二维码

最近在开发中&#xff0c;需要生成自定义的二维码&#xff0c;于是做了一个包出来&#xff0c;分享给大家一起使用。适用于微信小程序的二维码生成器&#xff0c;基于Canvas生成&#xff0c;支持中文的输入。可在原生小程序&#xff0c;mpvue&#xff0c;taro中使用。&#xff…

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

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

记一次 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两…