微信小程序扫描二维码如何跳转小程序内指定页面并传递参数给目标页面?

简介: 微信小程序扫描二维码如何跳转小程序内指定页面并传递参数给目标页面?

项目场景:

实际项目中,用户通过扫描打印小票上的二维码,自己实现开具发票功能,那么这里就需要用户在扫描小票二维码后,跳转小程序内添加开票信息并提交后台开具发票的页面。
解决思路

首先二维码的本质就是一个链接地址。

其次登录微信小程序开放平台,设置扫普通链接二维码打开小程序。

最后业务代码处理二维码链接的传参,目标页面接收二维码链接地址的参数。
实际操作:

1、登录微信开放平台,找到 开发管理》开发设置》扫普通链接二维码打开小程序。
4e767f00e27e43b9a89406b30f70e725.png
下拉会找到下图的设置入口:
29e24f7ea7a741a3aec5255c39928e5f.png
f48fd1a9f56148c2bf02b706720586b4.png

按照要求设置即可,不懂的都有提示引导。

二维码地址:你自定义的链接地址,但是域名一定得是通过检验文件的。

小程序路径:你的链接跳转的目标页面路径。

测试范围:根据自身需要选择即可,发布线上那就必须是线上版本。
7b8c538eca2f4086bdc08e4f8dc17a9f.png
这里可能大家会问如何传参呢,我们设置二维码路径只需要有前缀区分就行,下图中可以看到我的测试链接地址,传参就按照get请求正常传参即可。
375dca6b126d4bafbe6a8d4ed05932c7.png
2、目标页面接收参数,这里我的目标页面是 pages/index/add

先获取二维码原始链接地址 qrUrl

此处我是在页面 onLoad 方法内获取:

onLoad: function(e) {
    // e={"q":"https://sp.tbzh.com/index?orderId=1&sfJyToken=false"};
    //Common.isExist() 方法是我自己内部判断非空的
    if(e.q&&Common.isExist(e.q)&&e.q!="undefined"){//扫码进入
        const qrUrl = decodeURIComponent(e.q) // 获取到二维码原始链接内容
        //GetWxMiniProgramUrlParam() 这个方法是解析链接地址中的参数方法
        e = GetWxMiniProgramUrlParam(qrUrl);//此处就是我们要获取的参数 json
        //比如我要得到orderId的值,直接取值即可
        let orderId = e.orderId;
        console.log("订单ID:"+orderId);
    }
}

解析链接地址参数的方法

GetWxMiniProgramUrlParam 方法代码如下:

function GetWxMiniProgramUrlParam (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;
}

3、到此就已经实现了整个微信小程序扫普通链接二维码打开小程序内页面的逻辑了。

写在最后:码字不易,如果对您有些许帮助,还望各位大佬点赞收藏哦,如有疑问或指正,还望评论区留言互动哦~~~

相关文章
|
8月前
|
Java API
wxid添加微信好友工具,免费微信wxid转换器二维码,jar实现仅供学习参考
本项目实现微信ID与wxid的转换及二维码生成功能,核心逻辑基于ZXing库完成QR编码,支持文件批量导入导出。
|
8月前
|
编解码 Java
wxid加微信好友工具,二维码转换工具,微信号转wxid插件【仅供学习参考】
本工具基于JAVA实现微信ID转换功能,支持wxid、微信号与二维码之间的相互转换。开发中使用ZXing库(版本3.5.1)完成二维码编解码,并设计核心类`WxidConverter`实现关键转换逻辑。
|
12月前
|
缓存 小程序 API
微信小程序页面导航与路由:实现多页面跳转与数据传递
本文深入探讨微信小程序的页面导航与路由机制,介绍多种页面跳转方式如`wx.navigateTo`、`wx.redirectTo`、`wx.switchTab`等,并讲解通过URL、全局变量和事件传递数据的方法。结合案例实现多页面跳转与数据传递,帮助开发者掌握这一重要技能。
|
小程序 前端开发 开发者
小程序的页面如何布局?
【10月更文挑战第16天】小程序的页面如何布局?
1037 1
|
算法 小程序 Java
java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上
这篇文章介绍了如何使用Java获取微信小程序的二维码,并将其调整大小后合成到海报(另一张图片)上。
280 0
|
小程序 前端开发 Java
java 生成小程序二维码
java 生成小程序二维码
320 0
|
JSON 小程序 JavaScript
微信小程序页面事件,下拉刷新事件和上拉触底事件
这篇文章介绍了微信小程序中如何实现下拉刷新和上拉触底事件,包括开启下拉刷新、配置下拉刷新样式、监听下拉刷新事件,以及监听上拉触底事件和配置上拉触底的距离。
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
599 0
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
325 0
在线课堂+工具组件小程序uniapp移动端源码