根据文档所述
用户扫描该码进入小程序后,将统一打开首页,开发者需在首页根据获取的码中 scene 字段的值,再做处理逻辑。使用如下代码可以获取到二维码中的 scene 字段的值,调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟
我通过以下代码获取小程序码并保存为图片
$post = array ( scene=> $type . "$" . $id , width=>500 ); $qr = $this ->curl_request( "http://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" . $arr ->access_token,json_encode( $post )); |
并通过以下代码进行跳转
var scene = options.scene; if (scene) { this .goQrcode(scene); } |
goQrcode: function (scene) { var scene_arr = scene.split( "$" ); //scene_arr[0]==1 类别为1则为商铺,暂不需要判断 wx.navigateTo({ url: '../shangpudetail/shangpudetail?id=' + scene_arr[1], }) }, |
请注意,在本地测试时,我根据文档要求进行测试,如图
这时进入小程序时会自动跳转到相应的页面,也就是说,这段程序是有效的
但用微信扫码后只能进入程序首页。
请问这是为什么?
补充一个小程序码,就是上面生成并保存在我服务器上的。
楼上诸位可以用实机输出一下参数就知道了,我就是发现我原参数里的分隔符(特殊符号)被转义了才发现问题的,目前我仅知道减号【-】不会被转义,其他的不明,你们可以试下。
var
scene =
decodeURIComponent
(options.scene);
// 535;//
this
.setData({ scene: scene });
if
(scene !=
undefined
&& scene !=
'undefined'
) {
if
(scene.indexOf(
"_"
) == -
1
) {
wx.redirectTo({
url:
'../card/share/share?ownerId='
+ scene,
})
}
else
{
var
scenes = scene.split(
"_"
);
var
ownerId = scenes[
0
];
wx.redirectTo({
url:
'../register/register?tuijianrenId='
+ ownerId,
})
}
}
小程序码的参数:scene=72_zhcue
有人看到没?到底是我的问题还是接口的问题?