步驟:
1.重定向到地址://996315.com/api/scan/?redirect_uri=掃碼結(jié)果接收頁(yè)URL
2.在接收頁(yè)里獲取qrresult參數(shù)結(jié)果
一般用法:
<a >Scan</a>
<script type="text/javascript">
if (location.href.indexOf("qrresult=")>-1) alert(decodeURIComponent(location.href.split("qrresult=")[1]));
</script>
如果要接收掃碼結(jié)果的頁(yè)面就是當(dāng)前頁(yè)面酒唉,那么可以直接用location.href來(lái)指定。encodeURIComponent作用是兼容url有參數(shù)的情況叙量,尤其是含#的情況料饥,不用encodeURIComponent編碼下的話(huà)會(huì)出現(xiàn)莫名其妙的錯(cuò)誤钾挟。以下是完整代碼。
<a href="javascript:window.open('//996315.com/api/scan/?redirect_uri=' + encodeURIComponent(location.href), '_self');">Scan</a>
<script type="text/javascript">
if (location.href.indexOf("qrresult=")>-1) alert(decodeURIComponent(location.href.split("qrresult=")[1]));
</script>
建議寫(xiě)成下面這樣,對(duì)qrresult參數(shù)用專(zhuān)門(mén)的獲取參數(shù)的js函數(shù)來(lái)獲取竟坛。這樣更穩(wěn)定拜鹤。
<a href="javascript:window.open('//996315.com/api/scan/?redirect_uri=' + encodeURIComponent(location.href), '_self');">Scan</a>
<script>
var qr=GetQueryString("qrresult");
if(qr){
alert(qr); //放入表單輸入框或者提交到后端框冀,具體根據(jù)自己業(yè)務(wù)做相應(yīng)處理
//window.open(qr, "_self"); //打開(kāi)二維碼中的網(wǎng)址
}
function GetQueryString(name){
var reg = new RegExp("\\b"+ name +"=([^&]*)");
var r = location.href.match(reg);
if (r!=null) return decodeURIComponent(r[1]);
}
</script>
注意:
如果用window.open喚起掃碼接口請(qǐng)注意一定要加上"_self"參數(shù),這個(gè)表示使用當(dāng)前窗口打開(kāi)掃碼敏簿,如果不加表示新窗口打開(kāi)明也,俗稱(chēng)彈窗宣虾,這個(gè)在2022年后的蘋(píng)果手機(jī)系統(tǒng)已經(jīng)完全禁止了彈窗,不加"_self"會(huì)發(fā)現(xiàn)無(wú)效温数,在我們平常的js代碼中要用到window.open也應(yīng)當(dāng)一律加上"_self"绣硝,以便兼容新的iOS系統(tǒng)。