最近在研究微信小程序。在做一个简单的购物小程序时,遇到一个问题:如何通过扫码实现动态的跳转页面功能,
通过研究终于找到了解决方法:
首先当然要实现扫码解析功能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才动态跳转