前话: 微信公众号首页扫一扫,如果是直接在首页扫码,直接跳到扫码结果,我们开发者不能对扫码结果做处理,比如不想让它扫其他的除了自己的规定的二维码,那么就要对这个二维码的扫码结果做出处理。
入正题 =>> 既然首页不能做处理,那么我们就可以做一个静态页面,在这个页面中调起扫一扫的功能,再对扫码结果做处理。
步骤如下:
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>
【注】以上微信开发老手请忽略!礼毕。