吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3868|回复: 11

[C#] 【源码】很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi

[复制链接]
毒逆天 发表于 2015-12-10 08:55 | 显示全部楼层 |阅读模式

有些功能部分手机不能使用,网站,通讯录,wifi基本上每个手机都可以使用。
在看之前你可以扫一扫下面几个二维码先看看效果:(浏览器自带的扫描就够了,QQ扫码和微信扫码部分手机不能直接连接wifi)

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图
1.二维码生成 网址 (URL)
包含网址的 二维码生成 是大家平时最常接触到的(例如:http://dnt.dkill.net),二维码识别软件能够通过 http://前缀 知道数据代表的是一个网址。使用{URLTO:www.baidu.com} 类似的语法格式也能让识别软件认出网址。


2.二维码生成 电子邮箱地址(E-mail Address)
互联网上大家联络时基本都会用到电子邮箱。当然,二维码也可以保存电子邮箱的地址(例如freemouse@email.com)。它的语法格式是{mailto:freemouse@email.com},这个好记,和html标签的语法格式是一样的。

3.电话号码 (telephone numbers)
电话号码的二维码生成的数据格式很简单,容易理解:{tel:13955555555}。如果是固话则加上区号,需要和海外联系的朋友则需加上+86的国家代码。

4.联系方式 (Contact information)
适合以二维码生成方式表示的联系人数据格式有不少个标准。例如:vcard(电子名片)。不过,它的格式对于二维码来说稍嫌复杂了一些。
目前,就笔者所知,市面上的安卓手机(苹果、黑莓等)一般都支持由日本的docomo公司制定的MECARD数据格式。
MECARD:N:freemouse,King;ADR:maanshan,anhui,china;TEL:+865558888888;EMAIL:freemouse@email.com; URL:t.qq.com/tseeku;QQ:47302929;;

BIZCARD
这种数据格式和MECARD类似,目前还没有找到具体的定义。似乎比MECARD更加简单;只能从例子中受点启发了。
BIZCARD:N:freemouse;X:King;T:Software Engineer;C:Google;A:maanshan, An Hui, China 243000;B:+8655555555;E:freemouse@email.com;;

vCard
一种很常用的电子名片数据格式。从windows的地址簿到linux的联系人;手机、PC皆能兼容,语法略嫌烦琐。感兴趣的朋友自己去wiki上阅读

5.短信(SMS)
语法格式:{smsto:13955555555:你好,二维码发短信}

6.彩信 (MMS)
和发短信的格式类似:{mmsto:13955555555:内容}

7.地理位置 (Geographic information)
和朋友一起分享你现在的位置,无疑是个很有用的功能。例如查看google公司在美国纽约的位置:北纬40.71872,西经73.98905;高度为100米。语法格式:{geo:40.71872,-73.98905,100}

8.获取安卓软件
在google的安卓市场找软件,二维码也能派上用场。
例如:{market://details?id=org.example.foo}

9.获取Wifi配置(Android)
WIFI:T:WPA;S:mynetwork;P:mypass;;

                               
登录/注册后可看大图
其实扫二维码的本质就是解析出一段字符串,为什么有一些神奇的功能呢?那是字符串的格式满足一些系统内置的协议或者格式,所以系统就帮你干了类似于发短信,打电话,添加联系人,连接wifi之类的事情。可以想像,你开了个店,店门口有个免费wifi的二维码,然后自己名片也是一个二维码~~~~是不是有点高大上的感觉?
其实代码并没有什么技术含量,既然有人要求,那就写一下吧,这次就不局限平台了,写了个通用的demo
核心类库:jquery.qrcode.min.js
核心代码:
  1. //中文字符处理
  2.         function toUtf8(str) {
  3.             var out, i, len, c;
  4.             out = "";
  5.             len = str.length;
  6.             for (i = 0; i < len; i++) {
  7.                 c = str.charCodeAt(i);
  8.                 if ((c >= 0x0001) && (c <= 0x007F)) {
  9.                     out += str.charAt(i);
  10.                 } else if (c > 0x07FF) {
  11.                     out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
  12.                     out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
  13.                     out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
  14.                 } else {
  15.                     out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
  16.                     out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
  17.                 }
  18.             }
  19.             return out;
  20.         }
复制代码
  1. //生成二维码
  2.         function outputQRCod(txt, width, height) {
  3.             //先清空
  4.             $("#code").empty();
  5.             //中文格式转换
  6.             var str = toUtf8(txt);
  7.             //生成二维码
  8.             $("#code").qrcode({
  9.                 render: "table",
  10.                 width: width,
  11.                 height: height,
  12.                 text: str
  13.             });
  14.         }
复制代码
完整代码:
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8">
  5.     <title>生成二维码</title>
  6.     <script src="JavaScript/jquery-1.8.3.min.js"></script>
  7.     <script src="JavaScript/jquery.qrcode.min.js"></script>
  8.     <script type="text/javascript">
  9.         $(function () {
  10.             //没有中文就可以这么简单
  11.             $('#code').qrcode("http://dnt.dkill.net");

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

  16.             //URL演示
  17.             $("#url_btn").click(function () {
  18.                 var urlTxt = $("#inputUrl").val();
  19.                 if (urlTxt.indexOf("http://") < 0) {
  20.                     urlTxt = 'http://' + urlTxt;
  21.                 }
  22.                 outputQRCod(urlTxt, 400, 400);
  23.             });

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

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

  36.         //中文字符处理
  37.         function toUtf8(str) {
  38.             var out, i, len, c;
  39.             out = "";
  40.             len = str.length;
  41.             for (i = 0; i < len; i++) {
  42.                 c = str.charCodeAt(i);
  43.                 if ((c >= 0x0001) && (c <= 0x007F)) {
  44.                     out += str.charAt(i);
  45.                 } else if (c > 0x07FF) {
  46.                     out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
  47.                     out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
  48.                     out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
  49.                 } else {
  50.                     out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
  51.                     out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
  52.                 }
  53.             }
  54.             return out;
  55.         }

  56.         //生成二维码
  57.         function outputQRCod(txt, width, height) {
  58.             //先清空
  59.             $("#code").empty();
  60.             //中文格式转换
  61.             var str = toUtf8(txt);
  62.             //生成二维码
  63.             $("#code").qrcode({
  64.                 render: "table",
  65.                 width: width,
  66.                 height: height,
  67.                 text: str
  68.             });
  69.         }

  70.     </script>
  71. </head>

  72. <body>
  73.     <div id="main">
  74.         <div class="demo">
  75.             <p>请输入内容然后点击按钮生成二维码:</p>
  76.             <div id="code"></div>
  77.             <h2>演示1:</h2>
  78.             <p>
  79.                 普通文本:<input type="text" class="input" id="inputTxt" value="">
  80.                 <input type="button" id="txt_btn" value="生成二维码">
  81.             </p>
  82.             <h2>演示2:</h2>
  83.             <p>
  84.                 URL 演示:<input type="text" class="input" id="inputUrl" value="">
  85.                 <input type="button" id="url_btn" value="生成二维码">
  86.             </p>
  87.             <h2>演示3:</h2>
  88.             <p>加联系人:(选填)<input type="button" id="people_btn" value="生成二维码"></p>
  89.             <p>
  90.                 姓名:<input type="text" class="input" id="inputName" value=""><br />
  91.                 <br />
  92.                 职位:<input type="text" class="input" id="inputPost" value=""><br />
  93.                 <br />
  94.                 公司:<input type="text" class="input" id="inputCompany" value=""><br />
  95.                 <br />
  96.                 地址:<input type="text" class="input" id="inputAddress" value=""><br />
  97.                 <br />
  98.                 手机:<input type="text" class="input" id="inputMobile" value=""><br />
  99.                 <br />
  100.                 邮箱:<input type="text" class="input" id="inputEmail" value=""><br />
  101.                 <br />
  102.             </p>
  103.             <h2>演示4:(现在的wifi一般都是WPA的,WEP的基本上10分钟内就能PJ了)</h2>
  104.             <p>
  105.                 WiFi名称:<input type="text" class="input" id="inputWiFiName" value=""><br />
  106.                 <br />
  107.                 WiFi密码:<input type="text" class="input" id="inputWiFiPass" value=""><br />
  108.                 <br />
  109.                 WiFi类型:<select id="WiFiType"><option value="WPA">WPA/WPA2</option>
  110.                     <option value="WEP">WEP</option>
  111.                     <option value="nopass">无加密</option>
  112.                 </select>
  113.                 <input type="button" id="wifi_btn" value="生成二维码">
  114.             </p>
  115.         </div>
  116.     </div>
  117. </body>
  118. </html>
复制代码
你们要什么效果就安装格式自己编辑一下就可以了,先闪了~~有机会再说一说二维码的美化
demo下载:http://pan.baidu.com/s/1pJGhV0f

评分

参与人数 9HB +24 THX +7 收起 理由
消逝的过去 + 1
agan8888 + 1
playboy + 1
枯叶之殇丶 + 1 真是好东西!谢谢楼主!
逍遥枷锁 + 4 + 1 评分=感恩!简单却充满爱!感谢您的作品!
阿弥上帝 + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
小七烤地瓜 + 10 + 1 学破解论坛1周年了,感谢大家的付出与关注。学破解论坛助你呼风唤雨!!!
Aniz + 5 + 1 学破解论坛1周年了,感谢大家的付出与关注。学破解论坛助你呼风唤雨!!!
vip-小宇 + 2 + 1 学破解论坛1周年了,感谢大家的付出与关注。学破解论坛助你呼风唤雨!!!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
千言万语我的心 发表于 2015-12-10 09:16 | 显示全部楼层

虽然看不懂,也很晕,不过我只想顶下楼主,仅此而已!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
无坚不破 发表于 2015-12-10 09:20 | 显示全部楼层

卧槽,感觉好强大好牛B,可惜看不懂啊楼主,咋办?
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
xiaobd521 发表于 2015-12-10 10:13 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
gujin162 发表于 2015-12-10 11:35 | 显示全部楼层


支持楼主,支持原创!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
【By】岁月无痕 发表于 2015-12-10 12:08 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
m0bil3_xT 发表于 2015-12-10 15:47 | 显示全部楼层

这个我给10分
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
ll988600 发表于 2015-12-10 16:51 | 显示全部楼层

看不懂。。。。。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
niutou20 发表于 2015-12-10 17:57 | 显示全部楼层

学习了一下。。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
枯叶之殇丶 发表于 2015-12-10 21:29 | 显示全部楼层

哈哈哈,这真是好东西!!!!谢谢楼主!!!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表