我的编程空间,编程开发者的网络收藏夹
学习永远不晚

扫码跳转小程序终极方案,详细记录踩过的坑!不信进来看!扫描普通二维码进入小程序功能记录(两种方式)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

扫码跳转小程序终极方案,详细记录踩过的坑!不信进来看!扫描普通二维码进入小程序功能记录(两种方式)

小程序管理平台https://mp.weixin.qq.com/

选择:开发管理->开发设置->扫普通链接二维码打开小程序

校验文件

点击添加进入配置页面

!!!还有一个校验文件,这个必须扔到服务器上面,放在域名下根目录即可,只要在二维码规则下的地址可以访问到即可 放在域名下根目录即可,只要在二维码规则下的地址可以访问到即可否则这个扫码跳转小程序校验不通过。(点击添加进入到的配置页面就可以获取到校验文件)

以上配置的一些说明:二维码规则具体可以查看官方说明:https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html

需要注意:测试范围配置项中的开发班和体验版是不支持自定义传参的,也就是说扫了二维码会跳转到空白页面。所以选择了开发版或体验版需要进行测试链接的填写,就好啦!特别的是测试链接与二维码规则要符合一致。(二维码规则在官方说明里面有详细介绍)。普通二维码内部的网址一定要是https://这个不能省略。

如果二维码规则的使用场景是:前面域名不变后面?id=xxx是动态改变的,可以将二维码规则配置成这个https://www.qq.com/a/ ;然后自己生成的二维码url可以是https://www.qq.com/a/ ?id=1 或者https://www.qq.com/a/ ?id=2;等等等动态传参。一定注意这种适配子路径必须以斜杠结尾。

  1. 协议类型”和“选择大小写”均保持默认选项

  1. “二维码规则”:填写自己的URL,比如a.com/demo/

  1. “前缀占用规则”:选择“不占用”

  1. “校验文件”:下载校验文件并上传到自己的域名所在服务器上,注意是放在demo目录下。官方释义:放置于 URL 中声明的最后一级子目录下,若无子目录,则放置于 host 所属服务器的顶层目录下

  1. “小程序功能页面”:此处填写pages/index/index

  1. “测试范围”:开发阶段推荐选择“开发版”。

  1. “测试链接(选填)”:可以不填。如果填写的话,可以写a.com/demo/?id=1

  1. 点击“保存”按钮,添加成功后跳转到列表页。

配置完“扫普通链接二维码打开小程序”列表中会多出一条待发布的记录,不发布的话,扫码二维码也会跳转小程序,发布后也可以修改测试范围。另外如果开发者工具想要二维码编译,配置正确的的前提下,必须发布后才可以在开发者工具里面二维码编译,不然会提示不是小程序二维码的报错!!

经常出现的几个神奇问题

  1. 如果扫码后没有跳转微信小程序而是出现403 Forbidden错误页,也有可以是别的错误状态。此时大概率是测试链接未配置

如果配置正确,但还是无法打开小程序,那就是微信的问题

  1. 扫码后打开的程序不是最新的

出现这种情况是因为在扫码前访问过旧的小程序,删除后重新扫新码有可能会正确

  1. 每次配置完一般需要五分钟后去测试(血泪史呀)

测试范围选体验版,五分钟后扫码打开的小程序就是体验版小程序;如果测试返回选的线上版,则打开的小程序就是线上已经发版的小程序。(注意测试和正式访问的数据库不同)

  1. 但此时同样会有几种情况出现:

  • 用户A非开发者,在扫码前没有访问过小程序,也没有扫过微信开发者工具中的预览码,此时会跳转到线上已发版的小程序

  • 用户B是开发者,在扫码前访问过小程序,也扫过预览码,此时有可能会跳转到线上已发版的小程序

  • 用户B是开发者,在扫码前访问过小程序,也扫过预览码,此时有可能会跳转到开发版小程序

至于为什么会出现乱跳的情况,我无法解释,只能把锅甩给微信了。

有人可能会去查微信开放文档中的说明。微信开放文档?我信你个鬼!

  1. 扫码后“页面不存在”

扫码后能打开小程序,但提示页面不存在

这种情况是因为已打开的小程序中不存在二维码中配置的路径

产生的原因一般是:打开的小程序版本不对

解决的办法也很简单,检查一下二维码中的路径是否存在于对应的小程序中,如果不存在,更换正确即可。

小程序通过以下方式接收参数

onLoad: async function (option) {    if (option && option.q) {      const q = decodeURIComponent(option.q) // 获取到二维码原始链接内容      // const scancode_time = parseInt(option.scancode_time) // 获取用户扫码时间 UNIX 时间戳      console.log("option", option);      console.log("q", q);      let erweima_id = this.getUrlSingleParam('id', q)//调用工具函数获取url中传递的参数      console.log("结果", erweima_id);    }}
export let getUrlSingleParam = function (key, url = location.search) {  const reg = new RegExp("(\\?|&)" + key + "=([^&]*)(&|$)");  const r = url.match(reg);  if (r != null) {    return r[2];    // return unescape(r[2]);//unescape函数显示已经废弃  }  return null;}

测试的话可以通过编译器的二维码编译去测试

后端配置生成小程序二维码

官方文档:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/qr-code/getQRCode.html

getQRCode 与getUnlimitedQRCode两种接口的区别:
  • getQRCode:长度限制为128,但是有数量显示,总共生成的码数量限制为 100,000

地址:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/qr-code/getQRCode.html

  • getUnlimitedQRCode:长度限制为32,但是无数量限制

地址:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/qr-code/getUnlimitedQRCode.html

步骤

  1. 后端通过调用对应的微信api获取二维码url

  1. 前端对应获取

//getQRCode:    const codeInfo = wx.getLaunchOptionsSync()    this.codePath = codeInfo.query//getUnlimitedQRCode:    this.codePath = decodeURIComponent(query.scene)
  • 如果是后端去生成小程序,前端只需要调用自定义接口传递需要的参数,然后生成小程序的逻辑后端去完成,然后返回。

  • 前端生成二维码的话那么就是按文档去写就ok了。

用户扫码进入后的逻辑:

在onload或者onshow生命周期中获取或者处理参数

onLoad:function(options){  if(options.scene){    let scene=decodeURIComponent(options.scene);    //&是我们定义的参数链接方式    let userId=scene.split("&")[0];    let recommendId=scene.split('&')[1];    //传递多个参数可以这样写"1234&123"    //其他逻辑处理。。。。。比如方式一中的工具函数也可以  }}

来源地址:https://blog.csdn.net/m0_57033755/article/details/128881743

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

扫码跳转小程序终极方案,详细记录踩过的坑!不信进来看!扫描普通二维码进入小程序功能记录(两种方式)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录