生成小程序二维码、小程序码

微信自定义生成二维码

  • 使用微信云开发生成自定义二维码、小程序码
    • 话不多说,我们先来看最终的展示效果
    • 生成码有三种方式
    • 操作步骤
      • 1. 云环境的初始化
      • 2. 在页面上开辟一个容器来展示二维码(包括预览和保存到相册的按钮)
      • 3. 创建云函数
      • 4. 生成二维码的方法 getQrCode
      • 5. 保存二维码方法 saved
      • 6. 预览二维码方法 previewed
      • 7. 获取二维码传递的参数
    • 如果对您有帮助,请三连❤,么么哒~

使用微信云开发生成自定义二维码、小程序码

话不多说,我们先来看最终的展示效果

在这里插入图片描述
这一张是最终生成二维码的效果,点击保存到相册,会把二维码保存到手机相册,在微信开发者工具调试的时候,会将图片保存到电脑上
在这里插入图片描述
这个是我保存到桌面上的二维码
在这里插入图片描述
这张是二维码的预览功能

生成码有三种方式

  • 生成二维码(永久有效,有数量限制):cloud.openapi.wxacode.createQRCode
  • 生成小程序码(永久有效,有数量限制):cloud.openaapi.wxacode.get
  • 生成无限量小程序码(永久有效,无数量限制):cloud.openaapi.wxacode.getUnlimited

操作步骤

1. 云环境的初始化

// 云环境的初始化 app.js文件wx.cloud.init({env:'cloud1-9gmt6vpx11d9ced0',   // 环境IDtraceUser:true})
// project.config.json文件"cloudfunctionRoot": "cloudFn/",  // 与第三步云函数文件夹名一致即可

点击微信开发者工具中的云开发,会出现一个界面,直接复制环境ID,然后将复制的ID放在env中即可
在这里插入图片描述
在这里插入图片描述

2. 在页面上开辟一个容器来展示二维码(包括预览和保存到相册的按钮)

<view class="img-cloud"><button bindtap='getQrCode'>生成小程序二维码</button><image class="img" src='{{image}}' bindtap='previewed' data-filepath='{{image}}'></image><button bindtap='saved'>保存到相册</button>
</view>

3. 创建云函数

在这里插入图片描述

  1. 在微信开发者工具中根目录创建一个文件夹cloudFn,右击文件夹,选择新建Node.js云函数,函数名就叫createQRCode,会自动生成三个文件
    在这里插入图片描述

  2. index.js文件中的代码

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境// 云函数入口函数
exports.main = async (event, context) => {try{const result = await cloud.openapi.wxacode.createQRCode({// 扫码后进入的页面路径和携带的参数path:'pages/indexv2/index?discount=' + event.discount +'&endDate=' + event.endDate,     width:300})return result}catch(err){return err}
}
  1. config.json文件代码
{"permissions": {"openapi": ["wxacode.createQRCode"]}
}
  1. 上述步骤完成后,在createQRCode文件夹右击,选择第三个上传并部署:云端安装依赖(不上传node_modules),上传成功后会有提示。
    在这里插入图片描述

4. 生成二维码的方法 getQrCode

// 生成二维码getQrCode(){wx.showLoading({titel:"生成中..."});let that = this;wx.cloud.callFunction({name:'createQRCode',   // 小程序二维码// name:'wxacode',   // 小程序码,有限制// name:'getUnlimited',   // 小程序码,无限制data:{   // 二维码传递的参数,可自定义,需要与第3步index.js文件的path参数相同discount:'0.91',endDate:'2023-11-07'},success(res){console.log(res);let fileManager = wx.getFileSystemManager();console.log(wx.env,'env');let filePath = wx.env.USER_DATA_PATH + '/qr.jpg';   // 二维码的一个本地地址,图片名称可随意起console.log(filePath);fileManager.writeFile({filePath,encoding:'binary',data:res.result.buffer,success:(result)=>{console.log(result);let codeImg = filePath;  that.setData({    // 将二维码渲染到页面上image:codeImg})wx.hideLoading({})}})}})},

5. 保存二维码方法 saved

// 保存二维码到手机上saved(){wx.saveImageToPhotosAlbum({filePath: this.data.image,success:res=>{console.log(res);wx.showToast({title:'保存成功',})}})},

6. 预览二维码方法 previewed

// 预览二维码previewed(e){const {filepath} = e.currentTarget.dataset;wx.previewImage({urls: [filepath],   // 可传多个地址})}

7. 获取二维码传递的参数

在第3步的2中,我们设置的扫码进入的页面是pages/indexv2/index,因此我们可在这个文件的onLoad中获取参数

onLoad(options) {console.log(options,'options');const {discount,endDate} = options;if(discount){// 书写业务逻辑xxx}if(endDate){// 书写业务逻辑xxx}},

如果对您有帮助,请三连❤,么么哒~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WEB渗透WFUZZ攻击使用介绍

目录 介绍 语言 安装 可以挖到的漏洞 特性 功能枚举 爆破文件、目录

RabbitMQ的6种工作模式

RabbitMQ的6种工作模式 官方文档&#xff1a; http://www.rabbitmq.com/ https://www.rabbitmq.com/getstarted.html RabbitMQ 常见的 6 种工作模式&#xff1a; 1、simple简单模式 1)、消息产生后将消息放入队列。 2)、消息的消费者监听消息队列&#xff0c;如果队列中…

k8s的Namespace详解

简介 在一个K8s集群中可以拥有多个命名空间,它们在逻辑上彼此隔离 namespaces是对一组资源和对象的抽象集合,比如可以将系统内部的对象划分为不同的项目组或用户组 K8s在集群启动之后,会默认创建几个namespace默认namespace default:所有未指定Namespace的对象都会被分配在…

在Raspberry Pi 4上安装Ubuntu 20.04 + ROS noetic(不带显示器)

在Raspberry Pi 4上安装Ubuntu 20.04 ROS noetic&#xff08;不带显示器&#xff09; 1. 所需设备 所需设备&#xff1a; 树莓派 4 B 型 wifi microSD 卡&#xff1a;最小 32GB MicroSD 转 SD 适配器 &#xff08;可选&#xff09;显示器&#xff0c;鼠标等 2. 树莓派…

【洛谷 P1957】口算练习题 题解(字符串+分支)

口算练习题 题目描述 王老师正在教简单算术运算。细心的王老师收集了i道学生经常做错的口算题&#xff0c;并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情&#xff0c;为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量&#xff0c;比如 58 \…

机器学习---概述(二)

文章目录 1.模型评估1.1 分类模型评估1.2 回归模型评估 2. 拟合2.1 欠拟合2.2 过拟合2.3 适当拟合总结&#xff1a; 3.深度学习3.1层次&#xff08;Layers&#xff09;&#xff1a;3.2 神经元&#xff08;Neurons&#xff09;&#xff1a;3.3 总结 1.模型评估 模型评估是机器学…

【Linux操作系统】Vim:提升你的编辑效率

Vim是一款功能强大的文本编辑器&#xff0c;它具有高度可定制性和灵活性&#xff0c;可以帮助程序员和文本编辑者提高编辑效率。本文将介绍Vim的基本使用方法、常用功能和一些实用技巧。 文章目录 1. Vim的基本使用方法&#xff1a;2. 常用功能&#xff1a;2.1 文件操作&#…

LangChain与大模型的学习

这里写目录标题 问题记录1、库的版本问题 实例记录1、公司名生成2 提示模板的使用3LLM Chain 参考资料 问题记录 1、库的版本问题 openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(hostapi.openai.com, port443): Max retries excee…

Qt应用开发(基础篇)——时间类 QDateTime、QDate、QTime

一、前言 时间类QDateTime、QDate、QTime、QTimeZone保存了Qt的时间、日期、时区信息&#xff0c;常用的时间类部件都会用到这些数据结构&#xff0c;常用概念有年、月、日、时、分、秒、毫秒和时区&#xff0c;时间和时区就关系到时间戳和UTC的概念。 UTC时间&#xff0c;又称…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机当前数据吞吐量(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK里函数来获取相机当前数据吞吐量&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在BGAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过BGAPI SDK获取…

x光下危险物品/违禁物品目标识别的模型训练与推理代码

前言 1.安检在公共场合的重要性不言而喻&#xff0c;保障群众人身安全是其首要任务。在各种场合&#xff0c;安检都是不可或缺的环节。x光安检机作为安检的重要工具&#xff0c;尽管其具有人工监控判断成像的特性&#xff0c;但是其局限性也十分明显。 为了解决这一局限性为出…

python+seaborn线性回归 拟合

文章目录 估计回归拟合绘制线性回归模型的函数拟合不同类型的模型以其他变量为条件在其他情况下绘制回归图估计回归拟合 许多数据集包含多个定量变量,分析的目的通常是将这些变量相互联系起来。我们之前讨论过可以通过显示两个变量的联合分布来实现这一目标的函数。不过,使用…

React 核心开发者 Dan Abramov 宣布从 Meta 离职

导读React.js 核心开发者、Redux 作者 Dan Abramov 在社交平台发文宣布&#xff0c;将辞去在 Meta 的职务&#xff1a; “我感到苦乐参半&#xff0c;几周后我就要辞去 Meta 的工作了。在 Meta 的 React 组织工作是我的荣幸。感谢我过去和现在的同事接纳我&#xff0c;容忍我犯…

Java02-迭代器,数据结构,List,Set ,Map,Collections工具类

目录 什么是遍历&#xff1f; 一、Collection集合的遍历方式 1.迭代器遍历 方法 流程 案例 2. foreach&#xff08;增强for循环&#xff09;遍历 案例 3.Lamdba表达式遍历 案例 二、数据结构 数据结构介绍 常见数据结构 栈&#xff08;Stack&#xff09; 队列&a…

java:使用flexmark-java 实现 CommonMark(规范 0.28)解析

文档 https://github.com/vsch/flexmark-java 依赖 Java 8 <dependency><groupId>com.vladsch.flexmark</groupId><artifactId>flexmark-all</artifactId><version>0.62.2</version> </dependency>Java 9 <dependency…

QT中定时器的使用

文章目录 概述步骤 概述 Qt中使用定时器大致有两种&#xff0c;本篇暂时仅描述使用QTimer实现定时器 步骤 // 1.创建定时器对象 QTimer *timer new QTimer(this);// 2.开启一个定时器&#xff0c;5秒触发一次 timer->start(5000); // 3.建立信号槽连接&am…

9.物联网操作系统之软件定时器

一。软件定时器概念及应用 1.软件定时器定义 就是软件实现定时器。 2.FreeRTOS软件定时器介绍 如上图所示&#xff0c;Times的左边为设置定时器时间&#xff0c;设置方式可以为任务设置或者中断设置&#xff1b;Times的右边为定时器的定时响应&#xff0c;使用CallBack响应。…

OLAP ModelKit Crack,ADO.NET和IList

OLAP ModelKit Crack,ADO.NET和IList OLAP ModelKit是一个多功能的.NET OLAP组件&#xff0c;用C#编写&#xff0c;只包含100%托管代码。它具有XP主题的外观&#xff0c;并能够使用任何.NET数据源(ADO.NET和IList)。借助任何第三方组件(尤其是图表组件)呈现数据的能力扩展了产品…

MySQL alter命令修改表详解

目录 ALTER TABLE 语法 ALTER TABLE 实例 添加一列 添加多列 重命名列 修改列定义 修改列名和定义 添加主键 删除列 重命名表 修改表的存储引擎 结论 在使用表的过程中&#xff0c;如果您需要对表进行修改&#xff0c;您可以使用 ALTER TABLE 语句。通过 ALTER TAB…

春秋云镜 CVE-2020-25540

春秋云镜 CVE-2020-25540 Thinkadmin v6任意文件读取漏洞 靶标介绍 ThinkAdmin 6版本存在路径查找漏洞&#xff0c;可利用该漏洞通过GET请求编码参数任意读取远程服务器上的文件。 启动场景 漏洞利用 1、未授权列目录poc 读取网站根目录Payload: http://think.admin/Think…