最近在研究微信小程序。在做一个简单的购物小程序时,遇到一个问题:如何通过扫码实现动态的跳转页面功能,
通过研究终于找到了解决方法:
首先当然要实现扫码解析功能js的代码:
click: function () { var that = this; var show; wx.scanCode({ success: (res) => { // this.show = "--result:" + res.result + "--scanType:" + res.scanType + "--charSet:" + res.charSet + "--path:" + res.path; this.show = res.result; that.setData({ show: this.show }) }, fail: (res) => { wx.showToast({ title: '失败', icon: 'success', duration: 2000 }) }, complete: (res) => { } }) },
wxml如下:
<view class="saoma" bindtap="click">点我扫一扫</view>
然后在解析的代码中添加跳转的代码在:
wx.scanCode({ success: (res) => { // this.show = "--result:" + res.result + "--scanType:" + res.scanType + "--charSet:" + res.charSet + "--path:" + res.path; this.show = res.result; that.setData({ show: this.show }) wx.navigateTo({ url: '../dingdan/dingdan' }) },
那如何实现动态的跳转呢?其实引用data中的show变量就好,首先
url: '../dingdan/dingdan'的格式是这样动态的格式就是:
var test = this.data.show; //读取data中show的值 wx.navigateTo({ //url: '../dingdan/dingdan?money=100' url: '../' + test + '/' + test//动态跳转页面 })
通过代码我们可以知道变量test其实为data的show值,而show的值通过上边的扫码解析实现了动态改变show的值
如果我们要跳转到url: '../no1/no1'的页面只要我们生成内容为‘no1’的二维码就可以了
*要跳转到url: '../no1/no1'首先要app.json存在pages/no1/no1
*要有no1这个文件夹
*no1的二维码解析后show将变为no1,所以要在改变后才引用show才动态跳转