微信扫一扫功能,扫普通链接二维码打开小程序时的

2021-05-26
来源:网络整理

最近开发的小型程序有一个要求。当用户通过微信扫描功能扫描普通链接的QR码打开小程序时,需要获取普通链接中传递的参数,然后进行进一步的操作。

此要求很常见。例如,要开发餐厅的自助订购功能,请扫描微信上的代码以进入餐厅的订购页面。该页面显示所有菜肴,然后用户从菜单中选择并下订单。

另一个更方便的选择是,餐厅介绍几种受欢迎的菜肴。将图片和菜式QR码放在餐厅的显眼位置。扫描QR码以直接进入菜品的订购页面,这样可以节省您的时间。用户在页面上搜索的时间。

此外,博物馆还设立了一些小型程序供自我解释。只需扫描代码即可进入相应的展览页面。

原理很简单,但是由于并不是完全按照Web方式设计的,因此让我们看看如何配置它。

要实现此要求开发小程序链接地址如何加参数,必须首先在的后台控制页面上对其进行配置,如图所示:

单击上图右上角的添加按钮进行配置:

需要填写四个项目。前缀规则默认情况下不被占用。当我们使用QR码工具或将常规链接转换为QR码时,调用微信扫描功能以扫描此QR码,然后微信将跳至目标小程序的特定页面。

但是有时候我们需要通过上面的普通链接传递一些参数。传递方法是在普通链接之后添加参数。参数格式是查询字符串。例如,如何在中获取此数据? ?观察以下代码:

onLoad (option) { console.log(option) }

通常,我们将在的生命周期函数中打印此函数的默认参数,这是从上一页传递的参数,但在此处应注意,这是在内部组件之间传递参数的方式小程序的页面。适用于扫描上述二维码以获得二维码中的参数。在获取二维码中的参数时,许多学生很容易混淆在页面之间传递值的方法。

这两种方法中传递参数的方法相同。两者都在链接后添加了问号和查询字符串,但是获取它们的方法不同。

扫描QR码以进入迷你程序不会导致页面之间的跳转,因此无法直接从链接中获取在链接中传递的参数。

那我们怎么得到它呢?查看官方文件:

该事件的默认参数中将包含一个q属性。该属性需要解码一次,解码后即可获取原始QR码的完整内容,例如:“”。得到这个完整的链接之后,我们提取参数,主要过程是字符串的处理。

import qs from "qs" onLoad (option) { console.log(option) if (option.q) { let url = decodeURIComponent(option.q) // url http://www.a.com?name=zs&age=18; let paramstr = url.split("/\?/")[1]; // name=zs&age=18; let params = qs.parser(paramstr); //最终结果为:params {name:'zs',age:18} } }

上面,我们使用了一个名为qs的npm软件包。该软件包专门处理查询字符串。我们用什么?拆分此字符串“”以获取“ name = zs&age = 18”,然后使用qs方法解析该对象以获取{name:'zs',age:18},到目前为止,我们已经获得了通过QR码传递的信息链接参数。

有关qs的npm软件包的具体用法,您可以访问npm官方网站查看相关文档。这是一个非常方便的类库。如果您有兴趣,可以查看一下。

分享