在开发微信小程序的过程中,生成的是带有logo的小程序二维码,并且这个二维码不是通用的二维码,而是只能用微信打开的专属二维码,如图:
遇到这样一个需求,生成的二维码要方形的通用二维码,并且不能带有小程序的logo。这种该怎么实现呢?
经过查询,微信小程序开发文档有一个功能叫做“扫普通链接二维码打开小程序”,可以生成普通的二维码打开小程序,如图:
看了下介绍,刚好符合客户需求,既可以生成普通的通用二维码,又不带logo,又能打开小程序,完美!研究了下,具体的实现方法如下:
一、微信小程序配置:
1.登录微信小程序,左侧菜单“开发与服务”下,选择“开发管理”,然后在右侧下拉找到"扫普通链接二维码打开小程序",如图:
2.右侧点击添加,进入扫普通链接二维码打开小程序的规则添加页面,如图:
3.协议类型、选择大小写使用默认设置。前缀占用规则,选择“占用”。
4.二维码规则填你的域名打开小程序的链接规则,举例,比如你要设置https://www.aaa.com/detail.html作为规则,那么在微信中访问这个网址时,不会真的打开网址,而是自动打开了你的小程序。如果要带有参数的规则,那么就是https://www.aaa.com/a.html?id=123。这里只需要设置一个规则样例即可,不需要设置正则规则,微信会自动识别和匹配。
5.小程序功能页面,填写扫二维码要打开的小程序路径,比如我们填写pages/goods/detail。
6.测试范围根据实际情况选择,测试链接填写。比如你的id=2有数据,那么就填https://www.aaa.com/detail.html?id=2
最终填写完毕效果:
二、小程序前端设置
小程序goods/detai页面中,需要对onload方法和method方法进行如下设置:
onLoad(data) {
var _url=decodeURIComponent(data['q']);
var _query=this.getParam(_url);
if(_query['id'] && _query['id']>0){
//获取到id的方法
}
},
methods:{
getParam(url) {
let theRequest = {};
if (url.indexOf("#") != -1) {
const str = url.split("#")[1];
const strs = str.split("&");
for (let i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
}
} else if (url.indexOf("?") != -1) {
const str = url.split("?")[1];
const strs = str.split("&");
for (let i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
}
}
return theRequest;
},
}
现在已经有了规则,可以通过服务端或客户端来根据这个规则生成二维码。然后扫描这个二维码,就可以打开小程序啦!
如果没有看懂这篇文章,或者是在使用过程中有任何疑问,欢迎联系丁老师进行沟通咨询哦~
在使用Uniapp开发APP真机调试,第一次运行时,提示:09:35:37.783 adb: failed to install C:\Program Files\HBuilderX\plugins\launcher\base\andr...
打开电脑的Nahimic软件,提示“您的nahimic驱动程序似乎已经过期,无法启动”,然后需要点击链接更新驱动,但点击进去后,也找不到什么驱动。经过研究发现解决办法:1.使用SDI安装,即SnappyDriverInstaller1....
在使用fastadmin的日常开发中,新增了一个订单模块order,在各项功能都开发完毕后,偶然发现这个页面每次一点刷新(浏览器刷新),顶部navtab就不显示"订单管理"4个字,图标也恢复成了默认的,在网上搜了相关...
在使用前端框架Nuxt3开发时,如何配置自定义的scss文件路径呢?有同学使用loadPaths: ['@/assets/css']来设置路径,但是无效,是因为在loadPaths中,@符号不起作用,不能代表根目录。正确...
在进行vue开发中,经常会遇到复制对象,赋值新对象后,原对象值被改变的问题,举个例子:let old={"a":1,"b":2}let new=old;new['c']=3;这个时候你...
正确的USB连线,其次打开开发者选项、USB调试,这些都是老生常谈,就不说了。在确保以上操作无误后,如果还找不到真机,关闭IDE,然后去adb的目录下,即HBuilderX\plugins\launcher\tools\adbs,把adb....
在使用python3.12时突然遇到提示windowsNomodulenameddistutils,研究了一下,把解决办法分享出来。1.安装setuptools,它现在也提供distutils;2.从第三方源(如系统软件包)载入distut...
微信小程序自2023年8月起,开始对《手机号快速验证组件》进行收费,每个小程序有1000次的免费额度,超过额度就要收费。说白了就是以后在使用微信小程序获取用户手机(用户主动授权)的时候,需要按次数收费了。那么,在当前的经济状况下,如何做到轻...