前话: 微信公众号首页扫一扫,如果是直接在首页扫码,直接跳到扫码结果,我们开发者不能对扫码结果做处理,比如不想让它扫其他的除了自己的规定的二维码,那么就要对这个二维码的扫码结果做出处理。
入正题 =>> 既然首页不能做处理,那么我们就可以做一个静态页面,在这个页面中调起扫一扫的功能,再对扫码结果做处理。
步骤如下:
1. 首页把type类型扫一扫功能改为页面点击;
1 "button":[ 2 { 3 "name":"扫码", 4 "sub_button":[ 5 { 6 "type":"scancode_push", 7 "name":"扫一扫", 8 "key":"borrow", 9 "sub_button": [ ] 10 } 11 ] 12 } ] 13 14 //==> 上面的代码改成下面的 15 16 "button":[ 17 { 18 "name":"扫码", 19 "sub_button":[ 20 { 21 "type":"view", 22 "name":"扫一扫", 23 "key":"borrow", 24 "url": "这里填你要调扫一扫功能的静态页面的地址" //例如 http://www.abc.com/userinfo/sao 25 } 26 ] 27 } ]
2. 在点击跳转的静态页面调起扫一扫
1 //要引入微信的JS-SDK 2 //<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> 3 4 <!DOCTYPE html> 5 <html lang="en"> 6 <head> 7 <meta charset="UTF-8"> 8 <title>哆啦Airphone</title> 9 </head> 10 <body> 11 <div onclick="sao()"> 12 <span>扫一扫</span> 13 </div> 14 </body> 15 </html> 16 <script src="/asset/js/jquery-2.1.0.js"></script> 17 <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> 18 <script type="text/javascript"> 19 wx.config({ 20 debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 21 appId: "", // 必填,公众号的唯一标识 22 timestamp: "", // 必填,生成签名的时间戳 23 nonceStr: "", // 必填,生成签名的随机串 24 signature: "",// 必填,签名,见附录1 25 jsApiList: [ 26 "scanQRCode" //扫一扫功能这个就可以 27 ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 28 }); 29 wx.ready(function(){ 30 31 }); 32 // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 33 wx.scanQRCode({ 34 needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果; 这里我们要处理扫码结果,所以一定要设为 1 35 scanType: ["qrCode"], // 可以指定扫二维码还是一维码,默认二者都有 36 success: function (res) { 37 var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
38 //在这里我们就可以对 result 这个扫码结果做处理了
处理代码如下。。。
39 } 40 41 }); 42 }); 43 44 </script>
【注】以上微信开发老手请忽略!礼毕。