uni-app微信小程序生成自定义参数二维码,跳转小程序指定页面,获取参数;uni-app微信小程序获取二维码自定义参数;微信小程序生成动态参数二维码;uni-app微信小程序获取动态参数二维码;

这里是引用

一、场景需求: 在小程序个人名片页面A页面,生成用户的个人名片二维码(该二维码携带用户的唯一标识id);微信扫一扫或长按图片识别这个二维码,可以跳转到小程序的B页面,并且在B页面拿到二维码上的唯一标识id;
大致要求就是:小程序生成的这个二维码,可以识别跳转到小程序某页,且会携带某些自定义参数,在被跳转页面还可以拿到这些自定义参数。

//我的是在个人名片页生成二维码,识别二维码跳转到首页pages/tabBar/home/index 携带参数 user_code
path: `pages/tabBar/home/index?user_code=${this.myObj.user_code}`

二、生成二维码,必须后端生成!(如果前端生成,总是会报access_token过期,导致获取二维码失败;而且前端获取需要把秘钥AppSecret写在前端,不安全;)
后端生成二维码点击此篇查看:Java 生成微信小程序二维码(可以指定小程序页面 与 动态参数)
以及 腾讯小程序官方生成动态参数二维码方法
注意点:(尤其第四点)
–1.后端生成二维码,然后前端只需要调用后端接口,传递跳转路径和自定义参数即可;
.
–2.后端生成二维码,需要用到秘钥AppSecret;此时秘钥就只能给后端用,前端代码千万不要也用到秘钥;否则也会导致access_token过期等问题;
.
–3.还是access_token问题,因为本地测试环境和生产环境生成二维码都是后端接口给的;而后端又都用到了秘钥AppSecret;就会导致测试环境和正式环境 access_token冲突问题,也就是你在测试环境本地获取了二维码,可能导致线上生产环境的获取二维码报access_token问题获取失败;
解决办法:测试环境和线上生产环境使用同一个缓存内的access_token,如果某个环境获取新的了,那另一个环境也用新的access_token即可!
.
–4.后端生成的二维码,无论是 本地测试环境生成的、小程序工具生成的、真机调试生成的、或者线上生产环境生成的二维码,你识别后它都是跳到线上生成环境地址! 也就是说这个二维码就是只能跳到线上生产环境的小程序指定页面,那么就导致前端本地开发小程序时候,不太好测试这个识别二维码跳转小程序携带参数的功能(但也有办法测试):
首先我们要知道,这个识别二维码并携带参数跳转小程序页面 B,会触发指定跳转B页面的onLoad函数,那么我们就需要在指定B页面的onLoad函数内拿到这个自定义参数:

// 指定二维码跳转的页面   ---------跳转页获取二维码自定义参数---------
onLoad: (opts) {console.log('首页onLoad', opts )// 直接获取二维码自定义参数if (opts.user_code) {this.far_usercode = opts.user_code}
}

接上面4.说:如何在开发时候,解决识别二维码跳线上上产环境的小程序页面,导致的开发时候不好测试问题:
.
4.1方案1:小程序工具测试 :把二维码图片保存到桌面,通过小程序工具–普通编译–添加编译模式–上传文件(二维码图片)–会自动识别跳转路径和自定义参数–点击确定。即可在小程序工具上看到 跳转到 指定页面且onLoad也可以拿到参数;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2方案2:小程序工具测试: 和上述方法类似但更简单;小程序工具–普通编译–通过二维码编译–上传二维码图片;
在这里插入图片描述

4.3方案3:真机扫码预览测试或者真机调试。(这一步略微麻烦但可以达到真机测试:因为我们知道小程序页面分享也是会触发到分享跳转页的onLoad函数,和二维码跳转一样逻辑;那么我们就可以在个人名片页A,也就是获取到二维码的那个页面,写一个分享功能,点击分享按钮,将此页面分享给微信好友,微信好友点击跳转的时候,携带自定义参数跳到我们想要二维码跳转的指定页面B;以此模拟二维码识别)
.
分享功能就两步骤(这两步代码都是写在获取到二维码的那个页面A)
步骤1:html里的分享按钮 <button open-type="share">分享到微信</button>
步骤2:在js里写上和onLoad函数同级别的分享函数:既下方的onShareAppMessage函数
步骤3:你分享给好友后,微信好友点击这个分享就会跳转到指定页面B,也可以在onLoad拿到自定义参数
–只要你这个分享功能没问题 那你线上生产环境的 二维码识别跳转携带参数功能一定没问题

  // 个人名片页 分享函数onShareAppMessage (res) {if (res.from === 'button') {// 来自页面内分享按钮console.log(res.target)}return {title: '诚邀您使用保客多多,开启客户管理轻松之旅!',//这里就是你要微信用户打开你的分享后跳转的页面路径和参数  //你会发现这个路径及参数 和后端要求你获取二维码接口 传递的路径及参数 是一样的  (也可能 后端接口会让你多传上路径开头的 / )path: `pages/tabBar/home/index?user_code=${this.myObj.user_code}`}},onLoad(){},

4.4方案4:当你的线上生产环境已经发布过小程序,且也有onLoad处理逻辑,那么你就直接真机识别二维码,直接跳到生产环境看即可(但是往往开发时候,我们的线上生产环境逻辑都没写对吧);
.
还有一种方案,就是uni-app发行微信小程序,会在小程序工具内调用线上生产环境的接口,自动编译成线上版本的,然后你手机微信预览扫码,真机上也就是使用线上生产环境版本;这个时候如果你识别二维码图片,跳转打开的是小程序是刚才你预览二维码的那个线上小程序还是真正的线上生产环境的小程序页面,这个我没有测试过,感觉可以试试!

小程序生成的动态参数二维码 小概率未携带参数(官方bug)
在这里插入图片描述

微信小程序生成二维码,坑比较多,但是按照上述步骤和4.1-4.3测试方案来,一定可以解决!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【view桌面虚拟化系列】1-vSphere搭建

本系列一共三章&#xff0c;具体如下&#xff1a; 【view桌面虚拟化系列】1-vSphere搭建 【view桌面虚拟化系列】2-View搭建 【view桌面虚拟化系列】3-VDI实现 实验的目的:测试vsphere5.1a、view5.1测试整体运行状况。 首先介绍下环境&#xff08;所使用域名&#xff1a;vmc.co…

uni-app微信小程序保存页面到相册;canvas保存小程序页面;微信小程序保存二维码活动页面到相册;微信小程序canvas 生成海报保存到相册;canvas绘制小程序页面保存及分享;

文末代码可以直接复制运行&#xff08;只需要将中间的二维码图片、底部的微信和相册图片和微信头像配置白名单 改成你项目内的img图片即可成功运行&#xff09; 一、场景&#xff1a;在微信小程序 个人名片页面 含有微信头像和个人信息二维码&#xff08;识别可跳转小程序指定页…

面试经验谈架构

##################################################### #本文内容来自《老男孩linux运维实战培训》学生—郑东旭 #如有转载&#xff0c;请务必保留本文链接及本版权信息。 #欢迎广大运维同仁一起交流linux/unix网站运维技术! #QQ:919953500#E-mail:weilandeshanhuhai126.com …

微信小程序uni.switchTab传参获取不到;小程序跳转到tabBar页并传参;uni-app微信小程序获取tabBar页面参数失败;uni-app微信小程序tabBar页面onLoad不执行

需求场景&#xff1a;从非tabBar页面B跳转到tabBar页面A&#xff0c;并想要携带参数。 如果使用uni.switchTab传参&#xff0c;会导致tabBAE页面获取不到参数&#xff1b; 原因&#xff1a; 官方文档有说&#xff0c;uni.switchTab路径后不能带参数&#xff1b; uni.navigateT…

UIView的旋转iOS开发

更多阅读请访问http://www.hopean.com 有关UIView坐标变换的&#xff0c;但是经常不能得到自己想要的效果&#xff0c;今天就把它仔细研究了下。记下来等以后忘记的时候再复习 重写shouldAutorateToInterfaceOrientation:&#xff0c;限制某个方向会改变原点的位置&#xff0c;…

uni-app微信小程序uni.navigateTo跳转无效问题;记录一次uni-app页面跳转无效,来回跳转问题;wx.navigateTo ,跳转超过10次怎么点不动的解决办法。

场景需求&#xff1a;从小程序A页面跳转到小程序B页面&#xff0c;然后B页面还可以跳到A页面。 跳转失效原因&#xff1a; –1.uni.navigateTo只能跳转到非tabBar页面&#xff0c;tabBar导航栏页面只能用uni.switchTab方法跳转&#xff1b; –2.uni.navigateTo跳转的页面栈太多…

20160512关于mac安装caffe的记录

记得2015年在mac系统上安装过一次caffe&#xff0c;非常顺利&#xff0c;但是最近群里许多同学反映mac安装caffe出现了各种问题&#xff0c;同时我也在帮助别人安装caffe的时候也遇到了一些坑&#xff0c;不再像以前这么顺利了。估计与操作系统&#xff0c;caffe升级有关。 今晚…

Python学习笔记(二)

2019独角兽企业重金招聘Python工程师标准>>> pickle #腌制 pickle.dump() #保存数据 pickle.load() #恢复数据 locals() # 返回当前作用域中的变量集合 with语句会自动处理所有已打开文件的关闭工作&#xff0c;类似C#中的using() >>> data[5,78,3,45,7,1]…

mac:在当前文件夹打开terminal终端

From: http://www.cnblogs.com/yjmyzz/p/3662507.html System Preferences -> Keyboard -> Shortcuts -> Services -> New Terminal at Folders/New Terminal Tab at Folder 这二项都勾上 然后在Finder中,在任何目录上右击->service就能看到进入terminal的选项

自定义控件(视图)2期笔记13:View的滑动冲突之 内部拦截法

1. 内部拦截法&#xff1a; 父容器不拦截事件&#xff0c;所有的事件全部都传递给子元素&#xff0c;如果子元素需要此事件就直接消耗掉&#xff0c;否则就交给父容器进行处理。 这种方法和Android中的事件分发机制不一样&#xff0c;需要配合requestDisallowInterceptTouchEve…

微信小程序图片加载太慢;uni-app微信小程序加载图片优化;微信小程序图片image加载成功事件@load;图片加载成功触发@load事件

场景&#xff1a; 微信小程序&#xff0c;对于以下较大的图片&#xff08;例如几M&#xff09;&#xff0c;在真机运行时候加载比较慢&#xff0c;此时会有一个比较长时间的白屏&#xff0c;体验很差。 解决方案&#xff1a;图片未加载成功前&#xff0c;进行loading…;图片加载…

循环队列及C语言实现一

循环队列是为了充分利用内存&#xff0c;进行数据操作的一种基本算法。具体实现方式可划分为&#xff1a;链式队列和静态队列&#xff0c;这里所谓的静态是指在一片连续的内存区域进行数据操作。本文只讲述静态队列&#xff0c;也是最简单的实现方式&#xff0c;链式队列以及链…

微信小程序自定义导航栏;uni-app微信小程序自定义顶部导航栏;微信小程序顶部导航栏高度;微信小程序左上角胶囊按钮;uni-app微信小程序左上角胶囊设置

本文是自定义微信小程序的顶部导航栏&#xff1b;自定义微信小程序底部导航栏tabBar看另外这篇 文末的两个文件代码可以直接复制使用 自定义导航栏页图 一、场景&#xff1a; 有些时候&#xff0c;微信小程序需要我们在导航栏做更多的操作样式&#xff08;例如高度、颜色、加…

HTML5与HTML4的比较

HHTML5封装一些标签和属性&#xff0c;方便了开发。 1 <form> 2 <p> 3 <label>Username:<input name"search" type"text" id"search" autofocus></label> 4 </p> 5 &l…

[iOS]Unable to run app in Simulator

From: http://blog.csdn.net/snowwind/article/details/41099575 今天在试Admob的时候&#xff0c;发现在simulator上&#xff0c;程序突然不能运行了&#xff0c; 提示 [plain] view plaincopy Unable to run app in Simulator An error was encountered while running (…

uni-app微信小程序动态样式设置;微信小程序style行内式无效;微信小程序style行内式编译报错;微信小程序:style设置样式

场景&#xff1a;微信小程序设置动态样式&#xff0c;有些时候是需要用到变量来书写的&#xff1b;但是实际使用发现&#xff0c;行内式书写虽然有效&#xff0c;但是会使得微信小程序的编辑失败&#xff1b;故需要使用动态的v-bind来写动态变量行内式样式&#xff08;既使用:s…

循环队列及C语言实现二

在我的上一篇博文中已经讲到循环队列的特点作用以及C语言实现&#xff0c;当然实现和操作的方式比较简单&#xff0c;在实际项目应用中略显粗糙。因此&#xff0c;这一篇提供一个进阶篇的实现与操作接口。具体函数作用可以参见我的注释部分&#xff0c;使用的时候直接把里面的接…

MAC下secureCRT无法保存密码的解决方法

From: http://www.php230.com/securecrt-for-mac-store-password.html 在mac下新安装了secureCRT&#xff0c;取代系统自带的终端工具&#xff0c;主要是为了方便链接服务器。 mac下面的secureCRT默认保存不上密码&#xff0c;我们选择了保存密码后&#xff0c;下次登录还是提…

微信小程序下拉刷新列表onPullDownRefresh;微信小程序上划加载列表onReachBottom;uni-app微信小程序下拉加载数据;uni-app微信小程序上划页面加载数据

需求&#xff1a;微信小程序列表加载有两种方式&#xff0c;分别是按住页面下拉加载数据数据&#xff08;触发onPullDownRefresh&#xff09;和直接上划滚动页面到底部加载数据&#xff08;触发onReachBottom函数&#xff09;。 本文主要是使用上划滚动页面触底加载数据&#x…