微信扫描二维码后怎么跳转到指定网址?

2022-03-14  本文已影响0人  sysdzw

微信的扫一扫功能很简单,有两个途径可以打开:
1.右上角+,然后点击“扫一扫”
2.“发现” -> “扫一扫”


图片.png

它可以扫:二维码、小程序码、条形码等各种码,因为微信的普及,导致人们有扫码需求便会立刻想到微信。仿佛扫码和微信扫码画等号了,不得不佩服微信的影响力。
日常生活里大家用它来扫码付款,扫码登录某个网页,或者打开某个小程序,或者扫码显示一段文字等等。现在说到重点了,用上述两种方式扫码后的动作取决于被扫的这个二维码,如果二维码内容是url,那么微信识别到这样的网址格式便会自动跳转,除了一些特殊的url(例如ip地址、被封的网址、竞争对手像阿里字节旗下产品的地址等等)。你想要扫码后跳转到指定网址不可能的!除非你能修改掉微信程序。

但是凡事不是那么绝对的。除了上面列出的两个途径难道没有其他地方打开微信扫码功能了吗?答案是有的。很多人应该会遇到过这样的一些网页表单,表单里一个文本输入框,后面一个扫码图标。点一下这个扫码图标便会启用扫码功能,和微信自带的扫一扫看起来一模一样,对准二维码或者条形码,滴得一下二维码或条码的内容便会出现在网页中。

所以说了这么多废话,“微信扫描二维码后怎么跳转到指定网址?”到底怎么搞?答案是只能在自己的网页程序里搞,你首先得有一点编程的基本知识储备,如果是一个码农更好了,技术不用多高,会复制粘贴的那种就行,当然能稍微知道点HTML和js就更好了。

<input type="text" id="sn">
<a href="https://www.996315.com/api/scan/">Scan</a>

<script type="text/javascript">
var qr=GetQueryString("qrresult");
if(qr) document.all.sn.value=qr;
 
function GetQueryString(name){
    var reg = new RegExp("\\b"+ name +"=([^&]*)");
    var r = location.href.match(reg);
    if (r!=null) return decodeURIComponent(r[1]);
}
</script>

将上述代码保存到一个.htm文件中例如起名为saoma.htm,然后将它上传到网站上(内外网服务器域名ip端口均可)。之后去访问它,点里面的“Scan”即可扫二维码或条码,你会看到扫到的东西显示在输入框里。


上图是扫的一个快递单条码

备注:快递单条形码内容应该只是数字,但是微信会将条码类型也显示在上面,条码类型有十几种的,比如快递单用的是CODE_128,如果不要这个内容可以用qr.split(",")[1] 这个来按逗号分隔然后去数组2即可。

如果要跳到指定的网址怎么弄呢?答案是通过js代码的window.open方法跳转即可,例如扫描后跳转到百度。

<input type="text" id="sn">
<a href="javascript:window.open('//996315.com/api/scan/?redirect_uri=' + encodeURIComponent(location.href), '_self');">Scan</a>

<script type="text/javascript">
var qr=GetQueryString("qrresult");
if(qr) window.open("https://www.baidu.com");
 
function GetQueryString(name){
    var reg = new RegExp("\\b"+ name +"=([^&]*)");
    var r = location.href.match(reg);
    if (r!=null) return decodeURIComponent(r[1]);
}
</script>

可是只是这样的跳转有啥意义呢?和我们扫的二维码根本没有关联。为了让它变的有意义,我决定拓展一下。
我们经常会看到快递单上的条码吧?你有试过在百度中直接搜索快递单号的那串数字么?不需要输入快递名称,它就能显示物流信息!百度搜索的链接结构是这样的:https://www.baidu.com/s?wd=关键字,因此我们可以这样修改:

<input type="text" id="sn">
<a href="javascript:window.open('//996315.com/api/scan/?redirect_uri=' + encodeURIComponent(location.href), '_self');">Scan</a>

<script type="text/javascript">
var qr=GetQueryString("qrresult");
if(qr) window.open("https://www.baidu.com/s?wd=" + qr.split(",")[1]);
 
function GetQueryString(name){
    var reg = new RegExp("\\b"+ name +"=([^&]*)");
    var r = location.href.match(reg);
    if (r!=null) return decodeURIComponent(r[1]);
}
</script>

保存为xx.htm文件,上传到服务器,访问这个地址,然后点“Scan”按钮随便扫一个快递单条码看看,神奇的事发生了,它竟然可以查询快递物流信息了!


图片.png
上一篇下一篇

猜你喜欢

热点阅读