在开发微信小程序的过程中,生成的是带有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;
},
}现在已经有了规则,可以通过服务端或客户端来根据这个规则生成二维码。然后扫描这个二维码,就可以打开小程序啦!
如果没有看懂这篇文章,或者是在使用过程中有任何疑问,欢迎联系丁老师进行沟通咨询哦~
问题描述:在使用iframe的框架系统中,左侧菜单,右侧为iframe页面区域,由左侧的菜单控制右侧的iframe链接显示页面。每个页面都由my97datepicker,在刷新网页首次打开右侧页面内容时,触发WdatePicker显示日...
现在AI的快速发展如火如荼,各AI大模型日趋成熟,在软件定制开发的过程中,越来越多的功能需求需要接入AI实现AI应用。那么如何接入AI接口,实现AI功能的调用,以及在接入AI接口,实现AI功能的过程中,有哪些注意事项呢?今天丁老师就这个...
有客户咨询,在Wordpress,如何去掉页面底部的Powered by wordpress字符呢?在后台设置的“页面显示-自定义”中,也没有底部页脚内容设置的选项,这个要怎么去掉呢?其实这个问题很简单,只需要进入该主题的目录,对相关的...
在使用uniapp开发的小程序内,打开图片,长按没有弹出菜单,无法扫码,此时只需在图片上加入show-menu-by-longpress即可完整代码:<image :src="picture" mode=&qu...
在日常开发过程中,突然发现svn无法提交和更新,出现“no path or pathfile specified on the command line”的错误,网上搜了一圈百度 google 以及stack overflow都没找到真正能...
在进行vue开发中,经常会遇到复制对象,赋值新对象后,原对象值被改变的问题,举个例子:let old={ "a":1, "b":2 } let new=old; new['c']=3;...
在使用idea系列的配套软件时,如intellij idea、Php Storm、Web Strom时,在搜索文件时,右上角的file mask可以筛选指定类型的文件。但是有时候可能会输入错误,产生多个记录,而且没办法删除,在以后的开发中经...
这个问题,用普通sql语句查询,好解决,把表的字符编码改为对应的就可以了。 但在使用视图查询时,比如select 'aaa' as type from xxx; select * from view where type=...