主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
本文介绍了在微信小程序云上开发和动态制作小程序代码的方法,希望对您有所帮助!
一、前言由于学习和工作中的许多事情,我已经放弃“务农”很长时间了。在这段时间里,我学到了很多东西,做了近10个大大小小的项目。在这个过程中,我越来越感觉到记录的重要性,所以我想到了抽出时间写一篇博客,记录一些开发过程中的知识点。这是一个老生常谈的问题,不仅是为了让自己下次复习,也是为了帮助那些需要帮助的人。【相关学习推荐:小程序开发教程】
二、需求分析在日常的微信小程序项目中,我们经常需要用到一些宣传海报、邀请海报等功能,比如一张邀请好友的海报,生成后让用户发朋友圈或者转发好友的邀请。这时候我们要知道哪些用户是你邀请的,方便发奖励什么的。这些都是非常常见的要求。那么如何才能实现类似的需求呢?
三、思路分析其实这些海报中最关键的一个就是通过远距离扫码识别参数的二维码(小程序码)。
通过查阅微信小程序的开发文档,我们可以知道这种带参数的二维码(小程序码)一般有两种生成方式。当这个二维码被绘制在海报上时,我们可以通过这个二维码的参数来识别哪个用户生成了海报。当其他用户扫码进入小程序时,他们可以将id存储在数据库中,然后判断是谁邀请了此人。
我太久没有码字了,所以说起来可能有点累赘。
总结一下:根据二维码的参数判断是谁的海报,这个参数必须能定位用户。一般来说,用户的openid可以用作该识别参数。
举一个简单的例子(云开发):
定义集合:用户。
有两个用户。
U1
字段名value _id123456789的说明只是使用云数据库自动生成的id,而不是自己生成。_openid112233将在插入数据时带来,它也是系统字段superiorId445566,即上级openid字段U2。
字段名value _id987654321的说明只需使用云数据库自动生成的id即可,无需自己生成_openid556677。插入数据时,它将被带在身边,这也是一个系统字段superiorId112233。显然,U2扫描了U1的二维码(小程序代码),因此U2的上级字段的值是U1的openid。
然后,当我们需要计算U1邀请了多少人时,我们可以查询数据中有多少用户的superiorId值等于U1的openid。
四、两大实现方式如上所述,实现这一需求的方式大致有两种,那么我们来分析一下这两种方式各自的特点。方便我们在开发过程中选择合适的方法。
路径1:小程序代码
微信为我们提供了三种动态生成小代码的方法。这里我只说云调用的方式,它是由传统服务器开发的,可以根据文档进行操作。原理基本相同。
1.接口a:wx code . create QR code
2.c接口:wxacode.get
3.接口B:wx code . get unlimited
制作一个表格来分析这三个界面。详细介绍可以点击标题直接查阅官方文件。
生成的接口数量有限,老化接口AAC接口携带的参数长度加起来不超过10W,长期128字节接口CAC接口加起来不超过10W,长期128字节接口B无限制,可以看到长期32个可见字符。其实AC接口都是一样的,实际使用方法也差不多,只是参数会有所不同。
AC接口和B接口的区别在于生成数量和携带参数长度的限制。因此,在选择时,我们应该考虑生成的数字和携带的参数的长度。
途径二:普通二维码
简单对比了小程序码的三个界面后,我们再来看看这个普通二维码的特点。如果以上三个接口无法满足业务需求,比如参数长、生成场景特别多,可以尝试通过这个常用二维码来实现。
与接口相比,生成的二维码数量不受限制,参数理论可以很长(没试过多长时间,但肯定比128长),时效也很长时间有效。从这个角度来看,似乎无论什么业务场景,直接选择这种方法都是正确的。
当然不是。普通二维码至少在这两个方面需要考虑。
一、开放范围:企业、媒体、政府等组织的小程序。换句话说,它不支持个人开发者账户的开立和使用。
二是开发相对复杂,需要服务器和域名进行配置。会踩很多坑。
因为这种方式的实现有点复杂,所以我在这里就不说了。有需要的朋友可以私下和我交流,互相学习。
最后需要注意的一点是,无论以哪种方式实现,小程序都必须先释放,然后才能用于正常的代码扫描。
动词 (verb的缩写)AC接口实现的代码示例(云开发)B接口与AC接口类似,可以直接去官网查看代码示例。应该有可能绕过类比。所以我只使用其中一个交流接口。主要导致一些常见的问题。
1.创建新的云函数后,在config.json文件中配置权限(以createQRCode为例)。
2、index.js代码
const cloud = require(& amp;#39;wx-server -SDK & amp;#39;)cloud . init({ env:cloud。DYNAMIC_CURRENT_ENV,})exports . main = async(event)= & gt;{ try { const result = await cloud . open API . wx code . create QR code({ path:event . path,width:event . width })return result } catch(err){ return err } } 3。调用(如果不是本地调试记得提交云函数)。
if(postal = = 1){//配置页面路径和参数path =“pages/indexstudent 1/indexstudent 1?上级= & quot+上级zhujicankao& quot;& amp上级= & quot+superior 2 } else if(posterType = = 2){ path = & quot;pages/teacher submit/teacher submit?superiorId = & quot+precendent D2 }//调用云函数,请求生成小代码缓冲区数据constqrcodeobj = awaitwx . cloud . Call function({ name:&;#39;创建二维码。#39;,data: {path: path,width:430 } })//需要注意的是返回的数据是缓冲区格式//需要转换成base64格式(为了方便存储和重用,毕竟次数有限)const base64 =“data:image/JPEG;base64+wx . arraybuffertobase 64(qrcode obj . result . buffer . data)//直接将数据扔进图像组件的src参数中即可。this . setdata({ imgur:base64 })4。wxml。
5.影响
6.描述和优化只截取了部分关键代码。小程序代码也进行了处理。
触发函数和实现复用的代码不贴(为了安全,不方便贴)。
如果优化了,第一件事肯定是考虑复用,就是新用户第一次调用云函数生成,下次直接从数据库读取生成。
当然,前提是参数一致。
为什么要重复使用?主要原因是即使是相同的二维码也具有相同的参数。如果你调用该函数十次,它仍然是十个代码,而不是一个代码。所以在数量有限的情况下,尽量考虑复用。
如果这篇文章对你有帮助,请点赞。更多编程相关知识请访问:编程视频!!
这几篇文章你可能也喜欢:
- 微信小程序翻译功能上线:现已支持18种语言
- 如何使用微信小程序中的车牌号输入法(如何使用微信小程序中的车牌号输入法进行打印)
- 微信小程序无法获取位置信息怎么办?(微信小程序无法获取位置信息)
- 微信小程序如何实现九宫格跳(如何在小程序中配置九宫格抽奖)
- 如何调节微信小程序的亮度?
本文由主机参考刊发,转载请注明:小程序如何动态制作小程序码分析(如何在小程序中动态生成小程序二维码图片) https://zhujicankao.com/107676.html
评论前必须登录!
注册