有些功能部分手機不能使用,網站,通訊錄,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
