很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天做个demo(续集)

有些功能部分手机不能使用,网站,通讯录,wifi基本上每个手机都可以使用。(浏览器自带的扫描就够了,QQ扫码和微信扫码部分手机不能直接连接wifi)

在看之前你可以扫一扫下面几个二维码先看看效果:

上篇网站介绍了一下常用格式(http://www.cnblogs.com/dunitian/p/4998714.html),其实扫二维码的本质就是解析出一段字符串,为什么有一些神奇的功能呢?那是字符串的格式满足一些系统内置的协议或者格式,所以系统就帮你干了类似于发短信,打电话,添加联系人,连接wifi之类的事情。可以想像,你开了个店,店门口有个免费wifi的二维码,然后自己名片也是一个二维码~~~~是不是有点高大上的感觉?

其实代码并没有什么技术含量,既然有人要求,那就写一下吧,这次就不局限平台了,写了个通用的demo

核心类库:jquery.qrcode.min.js

核心代码:

//中文字符处理
        function toUtf8(str) {
            var out, i, len, c;
            out = "";
            len = str.length;
            for (i = 0; i < len; i++) {
                c = str.charCodeAt(i);
                if ((c >= 0x0001) && (c <= 0x007F)) {
                    out += str.charAt(i);
                } else if (c > 0x07FF) {
                    out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
                    out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
                    out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
                } else {
                    out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
                    out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
                }
            }
            return out;
        }

 

//生成二维码
        function outputQRCod(txt, width, height) {
            //先清空
            $("#code").empty();
            //中文格式转换
            var str = toUtf8(txt);
            //生成二维码
            $("#code").qrcode({
                render: "table",
                width: width,
                height: height,
                text: str
            });
        }

完整代码:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>生成二维码</title>
    <script src="JavaScript/jquery-1.8.3.min.js"></script>
    <script src="JavaScript/jquery.qrcode.min.js"></script>
    <script type="text/javascript">
        $(function () {
            //没有中文就可以这么简单
            $(‘#code‘).qrcode("http://dnt.dkill.net");

            //普通转换
            $("#txt_btn").click(function () {
                outputQRCod($("#inputTxt").val(), 200, 200);
            });

            //URL演示
            $("#url_btn").click(function () {
                var urlTxt = $("#inputUrl").val();
                if (urlTxt.indexOf("http://") < 0) {
                    urlTxt = ‘http://‘ + urlTxt;
                }
                outputQRCod(urlTxt, 400, 400);
            });

            //联系人添加演示
            $("#people_btn").click(function () {
                var txt = "BIZCARD:N:" + $(‘#inputName‘).val() + ";T:" + $(‘#inputPost‘).val() + ";C:" + $(‘#inputCompany‘).val() + ";A:" + $(‘#inputAddress‘).val() + ";B:" + $(‘#inputMobile‘).val() + ";E:" + $(‘#inputEmail‘).val() + ";;";
                outputQRCod(txt, 400, 400);
            });

            //WiFi连接演示
            $("#wifi_btn").click(function () {
                var txt = "WIFI:T:" + $(‘#WiFiType‘).val() + ";S:" + $(‘#inputWiFiName‘).val() + ";P:" + $(‘#inputWiFiPass‘).val() + ";;";
                console.log(txt);
                outputQRCod(txt, 400, 400);
            });
        });

        //中文字符处理
        function toUtf8(str) {
            var out, i, len, c;
            out = "";
            len = str.length;
            for (i = 0; i < len; i++) {
                c = str.charCodeAt(i);
                if ((c >= 0x0001) && (c <= 0x007F)) {
                    out += str.charAt(i);
                } else if (c > 0x07FF) {
                    out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
                    out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
                    out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
                } else {
                    out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
                    out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
                }
            }
            return out;
        }

        //生成二维码
        function outputQRCod(txt, width, height) {
            //先清空
            $("#code").empty();
            //中文格式转换
            var str = toUtf8(txt);
            //生成二维码
            $("#code").qrcode({
                render: "table",
                width: width,
                height: height,
                text: str
            });
        }

    </script>
</head>

<body>
    <div id="main">
        <div class="demo">
            <p>请输入内容然后点击按钮生成二维码:</p>
            <div id="code"></div>
            <h2>演示1:</h2>
            <p>
                普通文本:<input type="text" class="input" id="inputTxt" value="">
                <input type="button" id="txt_btn" value="生成二维码">
            </p>
            <h2>演示2:</h2>
            <p>
                URL 演示:<input type="text" class="input" id="inputUrl" value="">
                <input type="button" id="url_btn" value="生成二维码">
            </p>
            <h2>演示3:</h2>
            <p>加联系人:(选填)<input type="button" id="people_btn" value="生成二维码"></p>
            <p>
                姓名:<input type="text" class="input" id="inputName" value=""><br />
                <br />
                职位:<input type="text" class="input" id="inputPost" value=""><br />
                <br />
                公司:<input type="text" class="input" id="inputCompany" value=""><br />
                <br />
                地址:<input type="text" class="input" id="inputAddress" value=""><br />
                <br />
                手机:<input type="text" class="input" id="inputMobile" value=""><br />
                <br />
                邮箱:<input type="text" class="input" id="inputEmail" value=""><br />
                <br />
            </p>
            <h2>演示4:(现在的wifi一般都是WPA的,WEP的基本上10分钟内就能破解了)</h2>
            <p>
                WiFi名称:<input type="text" class="input" id="inputWiFiName" value=""><br />
                <br />
                WiFi密码:<input type="text" class="input" id="inputWiFiPass" value=""><br />
                <br />
                WiFi类型:<select id="WiFiType"><option value="WPA">WPA/WPA2</option>
                    <option value="WEP">WEP</option>
                    <option value="nopass">无加密</option>
                </select>
                <input type="button" id="wifi_btn" value="生成二维码">
            </p>
        </div>
    </div>
</body>
</html>

你们要什么效果就安装格式自己编辑一下就可以了,先闪了~~有机会再说一说二维码的美化

demo下载:http://pan.baidu.com/s/1pJGhV0f

时间: 2024-12-18 05:25:25

很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天做个demo(续集)的相关文章

你知道刷社保卡看病买药也能扫二维码支付吗?(以成都市社保卡为例)

提到社保卡,很多人首先想到可刷社保卡看病买药,不用额外付费.    但通常大家不会随时把社保卡带在身上,也就无法使用社保卡看病买药,着实不便. 此时很多人会想要是可以用手机扫二维码支付一样刷社保卡该多好啊 其实,社保卡是能够使用二维码支付的,下面分享2种方法,希望能帮助到你 ①:微信关注公众号成都市医疗保险选择便民服务 在弹出的弹框中选择电子社保卡 在如下界面选择支付二维码即可跳转至用于支付扫码的二维码 另外,这里的缴费信息可查询到你社保每月分别缴费金额和具体参保信息 支付信息可查询医疗账户余额

项目ITP(二) 二维码 拿起你的手机装一装,扫一扫 【每日一搏】

前言 系列文章:[传送门] 五一,期待的两天假期.我的生日,happy. [吐槽] 学校真恶心,半月前让我给他搞个东西,md,课题不加人.后来又来求,说钱(钱,咱不需要:我猜也不多).到现在,又来了,我晕.直接一句话,加我给做,时间问题,有可能只是半成品.不加不做. 正文 上文,我们讲了 二维码生成 解码 这次我们就用 android 来扫一下,实现android 扫二维码. 下载扫一扫 包结构-介绍 #com.zxing.xx 这是 zxing 库提供的 #BarCodeActivity 实战

微信扫码支付功能(1)---通过谷歌二维码工具生成付款码

生成付款二维码 一.微信网站扫码支付介绍 1.扫码支付文档 微信开发官方文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5 有关微信支付的流程图微信官方已经说的很清楚了,这里也无需其它解释.这边采用微信支付扫码模式二(不依赖商户平台设置回调url),所以在生成二维码之前 要先调用微信统一下单支付接口,获得code_url,再通过谷歌二维码工具将code_url生成二维码图片. 2.名称理解 在微信扫码支付功能开发之前,

LV4500L二维码模块助阵高速公路远距离收费:扫码通关应用

LV4500L二维扫描模块是一款集远距.高性能.大范围广角扫码等优点的优质二维码扫描器,它设计的初衷就是考虑到解决一些远距离扫码的需求,如智能交通领域上停车场/高速公路远距离扫码缴费使用.据调研发现,如今很多O2O自助设备都需要支持自感应"二维码扫码"功能,但支持远距离读码的少之甚少,此情此景下专为远距扫码而生的LV4500L就解决了很多行业的需求.据了解,LV4500L二维码扫描模块常被集成内嵌到停车场自助缴费机.高速公路扫码缴费设备等用于读取手机屏幕上的支付码信息.它采用自主研发的

四川景区引入二维码售检票系统,扫码入园特欢迎

近日,四川一智慧景区颠覆了传统的售票模式,通过利用闸机的扫描窗口直接扫手机电子二维码门票这种便捷.炫酷的入园方式受到了广泛游客的欢迎.这一智能化应用的投入使用,有效的解决了暑假高峰期大量游客排队购票的困扰,同时提升了景区的服务质量. "景区引进了二维码电子票务系统与智能闸机完美结合,对接上微信公众号构建电子票务分销平台,从而实现"互联网+智慧景区",在门禁设备方面,智能闸机内嵌有二维码扫描器,融合了条码识别技术和移动物联网科技手段,整合"扫码检票"的功能与

微信加关注链接 一键关注公众号 解决用手机看网页无法扫二维码的烦恼

现在很多网页都会设置wap手机版,移动端的流量逐渐显现.问题来了,如果你用手机浏览网页,你又很想微信加关注,上面正好有个二维码,苦于手机分身无术,又不想打一长串的微信号,还是舍弃吧.站长们可要在这方面提高用户体验了.那么有没专用的微信加关注链接一键关注公众号呢?幸好微信团队早就发明了微信文字链接,只是我们平时没有发现而已. 我们平时的文字链接或其他链接(A标签)一般都是<a href="http://开头的,这种链接在微信中也是通用的,具体可以查看微信添加文字链接一文.这里要说的是微信加关

蘑菇街网站的扫二维码登录是怎么做到的?

蘑菇街网站的扫二维码登录是怎么做到的? http://mp.weixin.qq.com/qa/index.php?qa=15867&qa_1=%E8%98%91%E8%8F%87%E8%A1%97%E7%BD%91%E7%AB%99%E7%9A%84%E6%89%AB%E4%BA%8C%E7%BB%B4%E7%A0%81%E7%99%BB%E5%BD%95%E6%98%AF%E6%80%8E%E4%B9%88%E5%81%9A%E5%88%B0%E7%9A%84%EF%BC%9F 想做一个类同蘑

二维码快速扫码优化方案介绍(一)--怎么在光线不足时,手机自动进行补光。

二维码扫码已经是一个很通用的技术了,也有很多的开源项目可以实现,比如Zxing项目.https://github.com/zxing 这里重点不是介绍Zxing中是怎么样来实现二维码扫码的,而是来介绍一下,微信上的快速扫码技术是如何来做到优化体验的. 要实现在光线不足时,手机自动进行补光,其实很简单,每个人都知道,手机上有很多的传感器,其中有一个很重要的传感器就是光线传感器. 这个大家平时在拍照的时候,都用到过.那么如何能把这个应用到二维码的扫码体验上来呢. 我们可以利用手机的光线传感器进行外部

C(++) Websocket实现扫码二维码登录---GoEasy

最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要解决两个问题: 1.  在没有输入用户名及密码的情况下,如何解决权限安全问题?换句话讲,如何让服务器知道扫码二维码的客户端是一个合法的用户? 2.  服务器根据用户在客户端的选择如何实时在网页上作出相应的响应? 首先我们先理一下微信的实现思路,来方便我们理解解决这一难题的思路方向.微信登录的二维码实