前話: 微信公眾號首頁掃一掃,如果是直接在首頁掃碼,直接跳到掃碼結果,我們開發者不能對掃碼結果做處理,比如不想讓它掃其他的除了自己的規定的二維碼,那么就要對這個二維碼的掃碼結果做出處理。
入正題 =>> 既然首頁不能做處理,那么我們就可以做一個靜態頁面,在這個頁面中調起掃一掃的功能,再對掃碼結果做處理。
步驟如下:
1. 首頁把type類型掃一掃功能改為頁面點擊;
"button":[
{
"name":"掃碼",
"sub_button":[
{
"type":"scancode_push",
"name":"掃一掃",
"key":"borrow",
"sub_button": [ ]
}
]
} ]
//==> 上面的代碼改成下面的
"button":[
{
"name":"掃碼",
"sub_button":[
{
"type":"view",
"name":"掃一掃",
"key":"borrow",
"url": "這里填你要調掃一掃功能的靜態頁面的地址" //例如 http://www.abc.com/userinfo/sao
}
]
} ]
2. 在點擊跳轉的靜態頁面調起掃一掃
//要引入微信的JS-SDK
//<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>測試</title>
</head>
<body>
<div onclick="sao()">
<span>掃一掃</span>
</div>
</body>
</html>
<script src="/asset/js/jquery-2.1.0.js"></script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script type="text/javascript"> wx.config({ debug: false, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息通過log打出,僅在pc端時才會打印。
appId: "", // 必填,公眾號的唯一標識
timestamp: "", // 必填,生成簽名的時間戳
nonceStr: "", // 必填,生成簽名的隨機串
signature: "",// 必填,簽名,見附錄1
jsApiList: [ "scanQRCode" //掃一掃功能這個就可以
] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
}); wx.ready(function(){ }); // config信息驗證后會執行ready方法,所有接口調用都必須在config接口獲得結果之后,config是一個客戶端的異步操作,所以如需要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對於用戶觸發時才調用的接口,則可以直接調用,不要放在ready函數中。
wx.scanQRCode({ needResult: 1, // 默認為0,掃描結果由微信處理,1則直接返回掃描結果; 這里我們要處理掃碼結果,所以一定要設為 1
scanType: ["qrCode"], // 可以指定掃二維碼還是一維碼,默認二者都有
success: function (res) { var result = res.resultStr; // 當needResult 為 1 時,掃碼返回的結果
//在這里我們就可以對 result 這個掃碼結果做處理了
處理代碼如下。。。 } }); }); </script>
【注】以上微信開發老手請忽略!禮畢。