微信扫码进入小程序特定页面

news/2024/7/20 1:26:59 标签: 小程序

小程序配置 开发 - 开发管理 - 开发设置-普通链接二维码打开小程序

配置好的截图 如下:二维码规则建议是自己的域名 + /mini/

功能页面 pages/index/index 是为了方便跳转其他页面
在这里插入图片描述
记得把校验文件发给后端
在这里插入图片描述
web 端处理
二维码格式为:二维码规则/功能页/你想跳转的页面

// isFlag 是否携带地址
export default function getQrCode(url, isFlag = true) {
  // url为小程序跳转路由(带参) e.g:subPackages/pages/buildDetail/index?id=7B8349BD29EB4957B19DACD8C98807B3

  if (isFlag) {
    let webLocation = localStorage.getItem("location") || "";
    return `二维码规则/pages/index/index/webUrl=${encodeURIComponent(
      url
    )}&webLocation=${encodeURIComponent(webLocation)}`;
  } else {
    return `二维码规则/mini/pages/index/index/webUrl=${encodeURIComponent(
      url
    )}`;
  }
}
// 这儿我用的vue-qrCode  生成的二维码
  mounted() {
    let url = "pages/houseList/index?tabIndex=2";
    this.$nextTick(() => {
      this.qrcode = new QRCode(this.$refs.qrCode, {
        text: this.getQrCode(url),
        width: 126,
        height: 126,
        colorDark: "#000000",
        colorLight: "#ffffff",
        correctLevel: QRCode.CorrectLevel.Q,
      });
    });
  },

小程序处理 这儿自己看着的参数处理:我这儿的解码思路是 判断有无地址,无地址 就那webUrl后面的数据 有地址 在分割 分别赋值

  onLoad: function (options) {
   if (options && options.q) {
      // 从普通二维码扫码进入
      let par = options && options.q && decodeURIComponent(options.q).split('二维码规则/pages/index/index/webUrl=')[1]
      let url = this.decodeURIFunc(par),
        location = ''
      if (decodeURIComponent(par).includes('webLocation')) {
        url = this.decodeURIFunc(decodeURIComponent(par).split('&webLocation=')[0]),
          location = decodeURIComponent(par).split('&webLocation=')[1]
        wx.setStorageSync('cityCode', location)
        wx.setStorageSync('localtion', JSON.parse(location).location)
      }
      // 这儿的/ 不能丢哦
      wx.navigateTo({
        url: '/' + url,
      })
    }

}

// 处理解码后 / ? = 无法解码问题
  decodeURIFunc(val) {
    return val.replace(/%2F/g, '/').replace(/%3F/g, '?').replace(/%3D/g, '=')
  },

http://www.niftyadmin.cn/n/5314024.html

相关文章

Web3.0与虚拟现实:改变前端开发的新机遇

Hello大家好!我是咕噜的铁蛋!。近年来,Web3.0和虚拟现实技术的兴起引起了广泛的关注和讨论。它们不仅在互联网领域带来了革命性的变化,同时也给前端开发者带来了全新的机遇和挑战。今天铁蛋讲和大家一起探讨Web3.0与虚拟现实如何改…

C2-3.3.3 迁移学习

C2-3.3.3 迁移学习 1、为什么要使用-迁移学习 和 “数据增强” [C2-3.3.2 数据增强.md](C2-3.3.2 数据增强.md) 相比, 有一些应用程序没有那么多数据,而且 很难获取到更多的数据——“迁移学习 ” 诞生 迁移学习 在实际的应用中使用的很频繁&#xff…

Go : ssh操作(三)上传

简介 上传本地文件到远程主机 代码 uploader.go package clientimport ("github.com/pkg/sftp""io""io/ioutil""os""path" )var oneTimeMaxSizeToWrite 8192 // 单次最大写文件大小func IsDir(path string) bool {info…

华为云AI:轻松实现图像识别调用

文章目录 前言一、环境配置关键步骤 二、图像识别实例媒资图像标签名人识别 总结 前言 基于华为云AI服务和java使用SDK实现图像识别,主要以媒资图像标签和名人识别为例。 一、环境配置 Maven(没有直接下载华为的SDK包,而是使用Maven安装依赖…

Spring 基于注解的AOP见解4

5.基于注解的AOP配置 5.1创建工程 5.1.1.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&…

解析游戏开发中的ECS设计模式:实体、组件、系统的完美协同

ECS&#xff08;Entity-Component-System&#xff09;是一种设计模式&#xff0c;通常用于构建和管理具有大量实体和复杂交互的系统&#xff0c;尤其在游戏开发中得到广泛应用。这个模式的核心思想是将系统中的组件、实体和系统进行分离&#xff0c;以提高代码的可维护性、可扩…

#{}和${}的区别?

#{}是占位符&#xff0c;预编译处理&#xff1b;${}是拼接符&#xff0c;字符串替换&#xff0c;没有预编译处理。Mybatis在处理#{}时&#xff0c;#{}传入参数是以字符串传入&#xff0c;会将SQL中的#{}替换为?号&#xff0c;调用PreparedStatement的set方法来赋值。Mybatis在…

.NET学习教程二——.net基础定义+VS常用设置

一&#xff1a;注释 C#编写代码注意事项&#xff1a; 1、写代码切忌括号错误! 2、代码中所有的标点都是英文半角的标点 3、c#代码中每行代码以分号结束. 作用&#xff1a; 1、注销 2、解释 C#的3种注释符 1、单行注释// 2、多行注释/* 注释内容*/ 3、文档注释 ///多用…