微信小程序使用weapp-qrcode.js生成二维码以及“扫普通链接二维码打开小程序”动态传递参数实现以及遇到问题记录

这篇具有很好参考价值的文章主要介绍了微信小程序使用weapp-qrcode.js生成二维码以及“扫普通链接二维码打开小程序”动态传递参数实现以及遇到问题记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考文章原文链接:微信小程序使用weapp-qrcode.js完成二维码的生成_fairy_404的博客-CSDN博客

首先给需要生成二维码的页面创建一个canvas

<canvas canvas-id="myCanvas" style="background:#fff;position: absolute; left: -9999px;" />

因为我这里实现的是弹窗展示二维码,所有就把 canvas移出页面,小伙伴们根据自己需求进行调整,weapp-qrcode.js内容参考链接中就有,我这里就不展示了,接着就可以在页面中直接使用了

const QRCode = require('../../utils/weapp-qrcode');//根据自己文件实际位置修改

Page({

    /**
     * 页面的初始数据
     */
    data: {

    },
  // 点击生成按钮触发事件
  handleGenerate(code) {
      let that = this
    new QRCode('myCanvas', {
      text: 'https://xxx?id=' + code,
      width: 141, //canvas 画布的宽
      height: 141, //canvas 画布的高
      padding: 10, // 生成二维码四周自动留边宽度,不传入默认为0
      correctLevel: QRCode.CorrectLevel.L, // 二维码可辨识度
      colorDark: "#0378CC",//分别为两种交替颜色
      colorLight: "white",
      callback: (res) => {
        //工具回调数据
        wx.hideLoading()
        that.setData({
            imagePath: res.path
        })
      }
    })
  },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        this.handleGenerate('123')//生成二维码
    },

})

通过以上方法就可以生成二维码了。

扫描二维码跳转到小程序

然后就是怎么实现扫描二维码跳转到小程序并接收参数了,先根据微信文档做好配置工作:

具体配置可查看:扫普通链接二维码打开小程序 | 微信开放文档

1、登录小程序后台配置>开发管理>开发设置>启用“扫普通链接二维码打开小程序”

weapp-qrcode,小程序,微信小程序,javascript

 2、添加>填写二维码规则等信息

weapp-qrcode,小程序,微信小程序,javascript

3、获取参数(这里不好测试,因为只有上传代码和规则上线发布才会生效,先记录一下吧),需要在跳转页面的onLoad进行接收

    onLoad: function (options) {
            // 扫描邀请码进入
	        if(options.q && options.q != "undefined"){
		        const qrUrl = decodeURIComponent(options.q) 
		        let jsonUrl = this.getwxUrlParam(qrUrl);
		        let inviteId = jsonUrl.id;
                console.log(inviteId)
	        }
      },
  	getwxUrlParam(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;
	},

好了,基本就这样~~~撒花~~~了吗?

还差一点点,还有遇到的问题没记录呢:

I、以上的获取参数方法3,经过发布后已经确定能正确获取到链接参数(包括&后的参数,如:https://xxxx?id=123&code=456):

            // 扫描邀请码进入
	        if(options.q && options.q != "undefined"){
		        // 获取到二维码原始链接内容
		        const qrUrl = decodeURIComponent(options.q) 
		        //获取参数,通过方法解析
            let jsonUrl = that.GetwxUrlParam(qrUrl);
            //获取邀请码
            let inviteId = jsonUrl.id;
            let inviteCode = jsonUrl.code;
	        }

II、因为微信小程序首页onLoad调用两次,导致获取链接参数失败问题:

这是因为微信小程序启动时,app.json文件中的pages第一行(即首页)是一定会执行的。这是第一次调用,这个时候可以获取到链接参数:

{
   "pages": [,
      "pages/index/index"
  ]
}

 weapp-qrcode,小程序,微信小程序,javascript

但是当你在app.js的onLunch存在以下代码,就会导致首页第二次调用。这时候options就是一个空对象{},就会将第一次的结果覆盖

//app.js
App({
  onLaunch: function (options) {
     ......
     wx.redirectTo({
        url: 'pages/index/index'
     });
    }
})


这个时候,我们只需要将app.js中的wx.redirectTo({......})删除就可以解决这个问题了!!

真!!!完结~~~撒花~~~文章来源地址https://www.toymoban.com/news/detail-789333.html

到了这里,关于微信小程序使用weapp-qrcode.js生成二维码以及“扫普通链接二维码打开小程序”动态传递参数实现以及遇到问题记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序中生成二维码工具:weapp.qrcode.js

    先在 wxml 文件中,创建绘制的  canvas ,并定义好  width , height , canvasId 。由于小程序没有动态创建标签的 api,所以这一步不能省略。 下载下载文件 引入 js 文件后,调用  drawQrcode()  绘制二维码 var QRCode=require(\\\"../../utils/weapp-qrcode.js\\\") var qrcode = new QRCode(\\\'canvas\\\', {     text: \\\"1234

    2024年02月09日
    浏览(55)
  • 原生微信小程序使用 wxs;微信小程序使用 vant-weapp组件

    在这里插入图片描述 操作顺序 :文档地址 如果使用 typescript 需要操作步骤3,否则不需要操作 2.1 在根目录下 操作 2.2 安装版本 2.3 构建包 - 详情-勾选使用 npm 2.4 使用 vant 组件

    2024年02月11日
    浏览(73)
  • 微信小程序安装和使用 Vant Weapp 组件库

    Vant 是一个轻量、可靠的移动端组件库,于 2017 年开源。 目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。 在小程序项目上安装Vant Weapp,(你的电脑应该有npm环境才行)。 win + R 输入 npm -version 查看一下 如果没有

    2024年02月16日
    浏览(73)
  • 微信小程序自定义tabBar以及图标-使用vant-weapp

    微信官方文档介绍 官方文档 1、在小程序根目录下创建custom-tab-bar文件夹,并创建以下文件。 custom-tab-bar/index.js custom-tab-bar/index.json custom-tab-bar/index.wxml custom-tab-barr/index.wxss 2、修改custom-tab-bar/index.js(清除初始化的内容) 3、修改custom-tab-bar/index.json(引入vant 组件) 4、修改custom-tab-

    2024年02月11日
    浏览(59)
  • 微信小程序中 vant weapp 使用外部的icon作为图标的步骤

    首先在当前项目的根目录中,创建assets文件夹,用于存放静态资源,assets里面的文件夹可以自己定义,图片,css… iconfont官网 https://www.iconfont.cn/ 添加一个图标到iconfont项目中,点击生成在线链接,记得选unicode,然后再生成在线链接(待会儿会使用) 接着将当前项目的代码下

    2024年02月05日
    浏览(78)
  • 微信小程序:module “miniprogram_npm/@vant/weapp/action-sheet/index.js“ is not defined报错

    也可以试一下重新启动小程序,没准就好了。 

    2024年02月12日
    浏览(76)
  • 微信小程序引入Vant Weapp修改样式不起作用,使用外部样式类进行覆盖

            在项目中使用第三方组件修改css样式时,总是出现各种各样问题,修改的css样式不起作用,没有效果,效果不符合预期等。 栗子(引入一个搜索框组件) 实现效果:  左侧有一个搜索文字背景为蓝色,接着跟一个搜索框 wxml wxss emmm...明明我们css都写了,这出现的是什么鬼   审查

    2024年02月02日
    浏览(55)
  • 记录微信小程序使用Vant Weapp-Sidebar 侧边导航,更改它的边框颜色

    因为组件自带的颜色是红色,不符合项目的需求,直接用是这样的,如图: 但是在他的官方给出的参数中没有直接能变更颜色的参数,下面是它定义边框颜色的名字,我们只需要在自己的Wxss文件里重写一下这个class就可以了,代码如下: wxml文件: wxss文件: 现在运行就会是

    2024年02月13日
    浏览(58)
  • 记录 wx-open-launch-weapp 使用react开发微信环境h5打开微信小程序

    准备工作  1、微信签名配合后端 2、必须已认证的公众号(开发模拟器不行,测试号不行) 遇见的问题: 本地调试麻烦,用的手机修改dns,和电脑一致,通过电脑代理,编译时配置host代理运行调试(因为本地开发没办法签名认证) 1、在微信编辑器,测试号内怎么试都不生效,最后发现正式

    2024年02月16日
    浏览(44)
  • uni-app H5中使用wx-open-launch-weapp打开微信小程序

    最近最H5开发,项目需要发起支付,因为原来我们app走的一套是小程序的支付,所以这边需要H5打开小程序实现支付; 微信文档地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html ​ 问题描述 项目开发中遇到的坑,我就不一一列举了,直接上小友的爬坑链接

    2024年02月11日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包