小程序
小游戏
企业微信
微信支付
扫描小程序码分享
比如一个原页面链接是这样的:/pages/goodsDetail/GoodsDetail?goodsId=112233
后面的参数一直没生效,生成的码一扫进不到这个带参数的特定商品页
{
"scene": "goodsId=112233",
"page": "pages/goodsDetail/GoodsDetail"
}
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
可以带参数,
参数只有一个的话直接丢scene里,
小程序中通过:
Page({ onLoad (query) { // scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene const scene = decodeURIComponent(query.scene) } })
参数多的话建议直接建一张表,
通过sceneID来保存,小程序插叙下sceneID来获取参数。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
Page({
onLoad (option) {
let goodsID='';
if(typeof option.goodsID == 'undefined' && typeof option.scene == 'undefined'){
//什麼都沒傳,跳走
}else if(typeof option.goodsID == 'undefined'){
goodsID = option.scene;
}else{
goodsID = option.goodsID;
console.log(goodsID);
})
onLoad(e) { var pair = [] var url = decodeURIComponent(e.q) var paras = url.split("?"); var parameter = paras[1].split("&"); for (var i = 0; i < parameter.length; i++) { pair.push(parameter[i].split("=")) } for (var i = 0; i < pair.length; i++) { if (pair[i][0] == 'mch_id') { this.mch_id = pair[i][1] } else if (pair[i][0] == 'pid') { this.pid = pair[i][1] getApp().globalData.pid = this.pid } } console.log(this.mch_id, this.pid) console.log("二维码参数:", this.mch_id, this.pid) }, for循环里面的if判断参数就是你想要接收的参数,判断有就存起来 原理就是先从?开始截取然后放进数组,第一个下标是当前二维码的地址,第二个是参数,然后在把参数进行&的截取,这个时候所有的参数都被放进了一个新的数组,但是键和值是一个字符串,在进行=号的截取,所有的参就都被拿出来了,第一个是截取标签的前面字段,第二个是后面的字段,然后判断第一个字段是否是你需要的,是就把第二个下标字段拿出来
无限制的小程序码是不是带不了参数的?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
可以带参数,
参数只有一个的话直接丢scene里,
小程序中通过:
Page({ onLoad (query) { // scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene const scene = decodeURIComponent(query.scene) } })
参数多的话建议直接建一张表,
通过sceneID来保存,小程序插叙下sceneID来获取参数。
写个sample自己体会:
Page({
onLoad (option) {
let goodsID='';
if(typeof option.goodsID == 'undefined' && typeof option.scene == 'undefined'){
//什麼都沒傳,跳走
}else if(typeof option.goodsID == 'undefined'){
goodsID = option.scene;
}else{
goodsID = option.goodsID;
}
console.log(goodsID);
}
})
所以只能通過scene參數進行傳遞。
通過scene傳遞的參數,是需要通過option.scene來獲取,而且是string類型的,具體參見文檔。
所以你只能判斷是從普通頁面進去的,option.goodsID,還是option.scene。
onLoad(e) { var pair = [] var url = decodeURIComponent(e.q) var paras = url.split("?"); var parameter = paras[1].split("&"); for (var i = 0; i < parameter.length; i++) { pair.push(parameter[i].split("=")) } for (var i = 0; i < pair.length; i++) { if (pair[i][0] == 'mch_id') { this.mch_id = pair[i][1] } else if (pair[i][0] == 'pid') { this.pid = pair[i][1] getApp().globalData.pid = this.pid } } console.log(this.mch_id, this.pid) console.log("二维码参数:", this.mch_id, this.pid) }, for循环里面的if判断参数就是你想要接收的参数,判断有就存起来 原理就是先从?开始截取然后放进数组,第一个下标是当前二维码的地址,第二个是参数,然后在把参数进行&的截取,这个时候所有的参数都被放进了一个新的数组,但是键和值是一个字符串,在进行=号的截取,所有的参就都被拿出来了,第一个是截取标签的前面字段,第二个是后面的字段,然后判断第一个字段是否是你需要的,是就把第二个下标字段拿出来
无限制的小程序码是不是带不了参数的?