您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > 小程序

微信小程序开发之扫码和带参数跳转

时间:2019-11-13 16:40:24  来源:  作者:

前言

之所以把扫码和带参数跳转放到一起是因为这两个都涉及到页面间传参。

1. 小程序之扫码

在现在的移动互联网中,扫码是一个非常重要的应用场景。在眼查查中也得到广泛应用,从最开始的扫会员二维码到扫描预约码到现在的扫描带筛查码的菊花码。

在小程序中扫码需要使用微信官方提供的api,其底层是使用的微信的扫一扫,通过调起微信客户端的扫码界面进行扫码。

具体的Api使用请参考官方文档。需要注意的是在这个过程中,扫描二维码和扫描菊花码是不同处理过程。

扫描普通二维码结果在result中拿,扫描菊花码结果在path中拿。在下一节中将会具体说明。

2. 实际项目中的扫码

上代码进行说明

scan() {
 let that = this;
 wepy.scanCode({
 onlyFromCamera: false, //是否只能从相机扫码,不允许从相册选择图片,
 success: res => {}
 }).then(res => {

 
 that.onScanResult(res);
 });
 },

在调用wepy.scanCode后,将结果交由onScanResult方法处理


 
 /**
 * 扫描成功
 */
 onScanResult(res) {
 if (res == null) {
 return;
 }

 
 // 扫到了二维码
 if (res.scanType == "QR_CODE") {
 this.getDataByCode(res.result)
 this.$Apply();
 } else if (res.scanType == "WX_CODE") {
 if (stringUtils.isNullOrEmpty(res.path)) {
 this.getScreenDetail(res.result);
 this.$apply();
 } else {
 let path = decodeURIComponent(res.path)
 let senceIndex = path.indexOf("=")
 let code = path.substring(senceIndex + 1, path.length);
 this.getDataByCode(code);
 this.$apply();
 }
 }
 }

在具体的处理中根据scanType的不同从不同的字段中取数据。

此处需要特别注意的是菊花码的生成,如果只是小程序的二维码可以在微信小程序后台中直接下载物料,但是如果是需要生成自定义的带参数的小程序二维码则需要调用对应的接口才能实现。获取自定义的小程序码有如下两种方式:

l 使用官方工具:

https://mp.weixin.qq.com/wxamp/wxaqrcode/weappcode?simple=1&token=2009620926&lang=zh_CN

但是这种方式只能生成指定页面的小程序码,无法再带参数。

l 使用https接口获取:可通过后台调用或者使用网络请求工具模拟。除了可以指定页面路径外还可以指定接口。官方提供了ABCD4个接口我们使用的是B接口,page指定页面路径,scene指定页面参数。

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html

此外还需要注意使用时需要用到accessToken

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183

3. 页面带参数跳转

页面带参数跳转这个功能主要用于小程序被外部应用打开时使用,比如从公众号的自定义菜单项和眼查查App中跳转二来。

由于小程序的页面栈逻辑,如果直接跳转至对应页面,在退出这个页面后将直接退出小程序无法进入其他页面,所以我们采用的方案是所有跳转交由home页面执行,在home页面拿到对应的参数后做出跳转动作。

var page, param;
 console.log("option", option)
 if (option != null) {
 if (option.src) {
 this.enablePageSwitch = true;
 page = option.src;
 }

 
 if (option.param) {
 param = option.param
 }
 }

 
 this.$parent.loginToServer().then(() => {

 
 if (page) {
 this.switchToPage(page, param)
 this.enablePageSwitch = false;
 } else {
 this.bannerList();
 this.getHomeTags();
 }
})

 
/**
 * 跳转至页面
 */
 switchToPage(page, param) {
 // TODO: 跳转至具体的页面
 }

参考资料

1.微信小程序扫码说明

https://developers.weixin.qq.com/miniprogram/dev/api/device/scan/wx.scanCode.html

2. 小程序码的参数获取

https://www.jianshu.com/p/108233ed7ed0



Tags:微信小程序   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
微信小程序“无障碍急救平台”日前上线,解决听障人士120急救呼叫难题。听障人士在日常生活、工作中常有信息缺失、沟通不良的困难。如果自身或身边人突发急症,则需要依靠他人...【详细内容】
2021-12-15  Tags: 微信小程序  点击:(10)  评论:(0)  加入收藏
现如今卖东西的渠道是越来越多,如今在微信小程序也能开店卖东西了,有的小伙伴想在小程序上卖东西但不知道该怎么做,下面就来讲讲微信小程序如何做店铺,利用微信小程序!但凡得到公...【详细内容】
2021-11-03  Tags: 微信小程序  点击:(32)  评论:(0)  加入收藏
作者:灰灰来源:JS每日一题 一、背景传统的web开发实现登陆功能,一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录服务端校验用户信息通过之后,下发一个代表登录态...【详细内容】
2021-10-29  Tags: 微信小程序  点击:(43)  评论:(0)  加入收藏
一、微信服务号主要偏于服务交互(类似银行,114,提供服务查询),认证前后都是每个月可群发4条消息(不适用于个人)二、微信订阅号主要偏于为用户传达资讯(类似报纸杂志),认证前后都是每天...【详细内容】
2021-10-22  Tags: 微信小程序  点击:(82)  评论:(0)  加入收藏
总结列举微信小程序开放能力清单 硬件能力 蓝牙 NFC读写 连接WIFI设备 开放能力 ...【详细内容】
2021-09-27  Tags: 微信小程序  点击:(60)  评论:(0)  加入收藏
功能说明脱离公众号下的小程序,单独使用功能特点小程序:是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用...【详细内容】
2021-09-27  Tags: 微信小程序  点击:(46)  评论:(0)  加入收藏
微信小程序不愧是智能时代的宝藏发明,不用下载不占内存,点开就能用。今天介绍这7个小程序,个个都拥有超实用的功能,用了就知道有多香! 1.腾讯文档腾讯出品的在线文档编辑器,提供在...【详细内容】
2021-08-27  Tags: 微信小程序  点击:(101)  评论:(0)  加入收藏
微信上有很多好用的小程序,虽然不是很多人知道,但却很强大。这里就来分享8款相见恨晚的微信小程序,可以让手机更好用,还不知道的话,未免有点太可惜了,一起来看看吧。 1、专去水印...【详细内容】
2021-07-28  Tags: 微信小程序  点击:(101)  评论:(0)  加入收藏
微信小程序的出现让手机内存不再高负荷,同时也出现了很多实用的小程序例如以下这么几个。1、文章截图文章截图小程序主要实用功能可以通过截图实现保证精度的情况下进行无缝...【详细内容】
2021-07-14  Tags: 微信小程序  点击:(83)  评论:(0)  加入收藏
微信上有很多小程序,比起app更小巧,使用起来更加方便。这里就来为大家分享7个精心挑选的微信小程序,每一个都让人觉得相见恨晚,能让你的手机更好用。 1、群相册服务专属于一个群...【详细内容】
2021-07-13  Tags: 微信小程序  点击:(124)  评论:(0)  加入收藏
▌简易百科推荐
一、项目背景随着小程序在用户规模和商业化上取得的极大成功,各大平台都推出了自己的小程序。然而这些平台的小程序开发在语法上又不尽相同,不同平台小程序代码的维护需要投入...【详细内容】
2021-11-05  携程技术    Tags:小程序   点击:(65)  评论:(0)  加入收藏
作者:灰灰来源:JS每日一题 一、背景传统的web开发实现登陆功能,一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录服务端校验用户信息通过之后,下发一个代表登录态...【详细内容】
2021-10-29  Nodejs开发    Tags:微信小程序   点击:(43)  评论:(0)  加入收藏
总结列举微信小程序开放能力清单 硬件能力 蓝牙 NFC读写 连接WIFI设备 开放能力 ...【详细内容】
2021-09-27  软件开发分享    Tags:微信小程序   点击:(60)  评论:(0)  加入收藏
核心商城(CoreShop)介绍核心小程序商城系统(CoreShop) 是基于 Asp.Net 5.0、Uni-App开发、支持可视化布局的小程序商城系统;前后端分离,支持分布式部署,跨平台运行;拥有分销、代理、...【详细内容】
2021-07-20  码农也有梦想    Tags:小程序商城   点击:(115)  评论:(0)  加入收藏
介绍Vue3发布已经有一段时间了,从目前来看,其生态还算可以,也已经有了各种组件库给予了支持,但是不管是Vue3还是Vue2都无法直接用来开发小程序,因此国内一些技术团队针对Vue开发...【详细内容】
2021-07-13  爱分享Coder    Tags:小程序   点击:(204)  评论:(0)  加入收藏
首先明确几个概念1. W3C:指万维网联盟(World Wide Web Consortium),是一个国际的标准的制定机构。2. H5(HTML5,HyperText Markup Language 5的缩写),HTML5 是由W3C制定的新HTML标...【详细内容】
2021-07-06  畅游零和一的海洋    Tags:微信小程序   点击:(153)  评论:(0)  加入收藏
在开发微信公众号时,需要不时请求URL和数据封装。为了不做重复的工作。提取公共部分进行封装。产生了相应的公众类。今天先来写下请求类,代码如下:public class HttpRequestP...【详细内容】
2021-06-16  java浮萍  今日头条  Tags:公共类   点击:(134)  评论:(0)  加入收藏
小程序上线后,改版了很多次,包括一些 Api 接口也有改动。如果你学习一个很久之前的小程序项目是没有意义的,本文推荐的小程序都是最近有更新的。相信在你学习、部署的过程中,不...【详细内容】
2021-06-08    程序猿久一  Tags:微信小程序   点击:(207)  评论:(0)  加入收藏
自从2019年微信公开课Pro在微信之夜演示《跳一跳》以来,微信小游戏已经不知不觉走过的三年,这三年中我们可以明显看到微信对小游戏的扶持,对于微信开发者来说,微信小游戏开发以...【详细内容】
2021-05-25  开课吧科科  今日头条  Tags:微信小游戏   点击:(212)  评论:(0)  加入收藏
学习编程从hello world开始。学习微信小程序开发首先要安装一个微信开发者工具,官网上免费下载童叟无欺,下载完傻瓜式安装即可。 双击微信开发者工具,然后选择小程序,然后点击...【详细内容】
2021-05-12  程序员fearlazy  fearlazy  Tags:微信小程序   点击:(268)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条