Trình tạo Mã QR Wi-Fi: Truy cập nhanh vào Wi-Fi của bạn
Chào mừng đến với iTeam OS, giải pháp toàn diện của bạn cho mã QR Wi-Fi. Bạn đã chán ngấy việc chia sẻ thông tin đăng nhập Wi-Fi hoặc gặp vấn đề kết nối ở những nơi công cộng chưa? Đừng tìm nữa!
Với mã QR Wi-Fi, bạn chỉ cần quét để kết nối Wi-Fi, chưa bao giờ dễ dàng như vậy!
![]() |
Trình tạo Mã QR Wi-Fi: Truy cập nhanh vào Wi-Fi của bạn |
Demo tạo mã QR WiFi miễn phí cho smartphone
Các lợi ích của trình tạo mã QR Wi-Fi
Mã QR Wi-Fi mang đến nhiều lợi ích cho cả người dùng và nhà cung cấp mạng:
Chia sẻ thông tin đăng nhập Wi-Fi được đơn giản hóa: Mã QR Wi-Fi tối ưu quy trình chia sẻ thông tin mạng, giúp nhà cung cấp mạng phân phối thông tin đăng nhập một cách thuận tiện tại những nơi công cộng hoặc sự kiện. icon-star
Trải nghiệm người dùng nâng cao: Mã QR Wi-Fi cung cấp một cách kết nối mạng Wi-Fi liền mạch và dễ sử dụng, đảm bảo trải nghiệm tích cực cho khách, khách hàng hoặc khách thăm.
Làm thế nào để tạo mã QR để kết nối Wi-Fi?
Tạo mã QR Wi-Fi dễ dàng với nền tảng trực quan của iTeam OS. Hãy làm theo các bước đơn giản sau
- Truy cập trang web của iTeam OS và chọn trình tạo mã QR Wi-Fi.
- Nhập thông tin mạng cần thiết, bao gồm SSID (tên mạng) và mật khẩu.
- Tùy chỉnh thiết kế của mã QR của bạn để phù hợp với nhận diện thương hiệu hoặc sở thích cá nhân.
- Tạo mã QR Wi-Fi của bạn và tải xuống để sử dụng ngay lập tức.
Tại sao trình tạo mã QR tốt nhất cho Mật khẩu Wi-Fi?
Khi nói đến việc tạo mã QR Wi-Fi, là lựa chọn hàng đầu:
Giao diện thân thiện với người dùng: Nền tảng của chúng tôi rất trực quan và dễ sử dụng, đảm bảo trải nghiệm liền mạch từ đầu đến cuối.
Hỗ trợ đáng tin cậy: Cá nhân hóa mã QR của bạn để phù hợp với nhận diện thương hiệu hoặc sở thích thẩm mỹ của bạn.
Thiết kế mã QR có thể tùy chỉnh: QR Code Wifi cung cấp hỗ trợ chuyên dụng để giải quyết bất kỳ câu hỏi hoặc mối quan ngại nào bạn có trên quãng đường
Giải pháp mã QR linh hoạt: không chỉ là trình tạo mã QR Wi-Fi, mà còn cung cấp Mã QR cho hình ảnh, Multi Url QR code generator và nhiều hơn nữa.
Tạo Mã QR Wi-Fi của Bạn
Sẵn sàng để đơn giản hóa việc truy cập mạng và nâng cao trải nghiệm người dùng? Hãy tạo mã QR Wi-Fi cá nhân hóa của bạn ngay hôm nay! Nói lời tạm biệt với việc chia sẻ thông tin đăng nhập Wi-Fi bằng cách thủ công và chào mừng một trải nghiệm kết nối liền mạch
Mã QR để kết nối Wi-Fi là gì?
Mã QR Wi-Fi là cách nhanh chóng và dễ dàng để chia sẻ thông tin đăng nhập mạng Wi-Fi của bạn với người khác. Khi ai đó quét mã bằng điện thoại thông minh của họ, họ có thể tự động kết nối với mạng Wi-Fi của bạn mà không cần phải nhập mật khẩu thủ công. Phương pháp này tăng cường sự tiện lợi ở những nơi công cộng, chẳng hạn như quán cà phê hoặc khách sạn, nơi nhiều người cần truy cập Wi-Fi.
Còn đây là code Mã QR Wi-Fi
Mã CSS
<style>/*<![CDATA[*/ .hoanvv{width:420px;margin:0 auto;padding:20px;font-family:'Arial',sans-serif;color:var(--synC);background-color:var(--synBg);border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,0.1);}input,select{width:100%;padding:12px;margin-bottom:15px;font-size:14px;border:1px solid #ccc;border-radius:5px;transition:border-color 0.3s;}input:focus,select:focus{border-color:#007bff;outline:none;}select{width:100%;padding:12px;margin-bottom:15px;font-size:14px;border:1px solid #ccc;border-radius:5px;transition:border-color 0.3s;}label{display:block;margin-bottom:5px;font-size:14px;color:#333;font-weight:500;}.button-group{display:flex;gap:10px;justify-content:space-between;margin-bottom:10px;}.button-group,.secondary-buttons{display:flex;gap:10px;justify-content:space-between;margin-bottom:10px;}button{flex:1;min-height:40px;padding:8px 16px;font-size:14px;color:#fff;background-color:#007bff;border:none;border-radius:5px;cursor:pointer;transition:background-color 0.3s,transform 0.2s;display:flex;align-items:center;justify-content:center;line-height:1.2;white-space:nowrap;width:calc(50% - 5px);}button:hover{background-color:#0056b3;}button:active{transform:scale(0.98);}#viewSavedBtn{background-color:#28a745;}#viewSavedBtn:hover{background-color:#218838;}#printBtn{background-color:#ffc107;}#printBtn:hover{background-color:#e0a800;}#qrcode{display:flex;justify-content:center;align-items:center;margin:10px 0;padding:10px;border:1px dashed #ccc;border-radius:5px;background-color:#fff;min-height:150px;}#qrcode img{max-width:100%;}footer{margin-top:10px;font-size:12px;text-align:center;color:#666;} /*]]>*/</style>
Mã HTML
<div class="hoanvv"> <h2>WiFi QR Code Generator</h2> <input type="text" id="ssid" placeholder="WiFi Name (SSID)"> <input type="password" id="password" placeholder="Password"> <label for="encryption">Mã hóa</label> <select id="encryption" name="encryption"> <option value="WPA">WPA/WPA2</option> <option value="WEP">WEP</option> <option value="">Không có mật khẩu</option> </select> <div class="button-group"> <button id="generateBtn">Tạo QR Code</button> <button id="saveBtn">Lưu QR Code</button> </div> <div class="button-group"> <button id="viewSavedBtn">Xem QR đã lưu</button> <button id="printBtn">Print QR Code</button> </div> <div id="qrcode"><img src="data:image/gif;base64,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" width="205" height="205"></div> <footer> © Design bởi: Vũ Văn Hoàn. </footer> </div>
Mã JS
<script type='text/javascript'>//<![CDATA[ var qrcode=function(){function i(t,r){function a(t,r){g=function(t){for(var r=new Array(t),e=0;e<t;e+=1){r[e]=new Array(t);for(var n=0;n<t;n+=1)r[e][n]=null}return r}(l=4*u+17),e(0,0),e(l-7,0),e(0,l-7),i(),o(),v(t,r),7<=u&&h(t),null==n&&(n=w(u,f,c)),d(n,r)}var u=t,f=y[r],g=null,l=0,n=null,c=[],s={},e=function(t,r){for(var e=-1;e<=7;e+=1)if(!(t+e<=-1||l<=t+e))for(var n=-1;n<=7;n+=1)r+n<=-1||l<=r+n||(g[t+e][r+n]=0<=e&&e<=6&&(0==n||6==n)||0<=n&&n<=6&&(0==e||6==e)||2<=e&&e<=4&&2<=n&&n<=4)},o=function(){for(var t=8;t<l-8;t+=1)null==g[t][6]&&(g[t][6]=t%2==0);for(var r=8;r<l-8;r+=1)null==g[6][r]&&(g[6][r]=r%2==0)},i=function(){for(var t=B.getPatternPosition(u),r=0;r<t.length;r+=1)for(var e=0;e<t.length;e+=1){var n=t[r],o=t[e];if(null==g[n][o])for(var i=-2;i<=2;i+=1)for(var a=-2;a<=2;a+=1)g[n+i][o+a]=-2==i||2==i||-2==a||2==a||0==i&&0==a}},h=function(t){for(var r=B.getBCHTypeNumber(u),e=0;e<18;e+=1){var n=!t&&1==(r>>e&1);g[Math.floor(e/3)][e%3+l-8-3]=n}for(e=0;e<18;e+=1){n=!t&&1==(r>>e&1);g[e%3+l-8-3][Math.floor(e/3)]=n}},v=function(t,r){for(var e=f<<3|r,n=B.getBCHTypeInfo(e),o=0;o<15;o+=1){var i=!t&&1==(n>>o&1);o<6?g[o][8]=i:o<8?g[o+1][8]=i:g[l-15+o][8]=i}for(o=0;o<15;o+=1){i=!t&&1==(n>>o&1);o<8?g[8][l-o-1]=i:o<9?g[8][15-o-1+1]=i:g[8][15-o-1]=i}g[l-8][8]=!t},d=function(t,r){for(var e=-1,n=l-1,o=7,i=0,a=B.getMaskFunction(r),u=l-1;0<u;u-=2)for(6==u&&(u-=1);;){for(var f=0;f<2;f+=1)if(null==g[n][u-f]){var c=!1;i<t.length&&(c=1==(t[i]>>>o&1)),a(n,u-f)&&(c=!c),g[n][u-f]=c,-1==(o-=1)&&(i+=1,o=7)}if((n+=e)<0||l<=n){n-=e,e=-e;break}}},w=function(t,r,e){for(var n=b.getRSBlocks(t,r),o=M(),i=0;i<e.length;i+=1){var a=e[i];o.put(a.getMode(),4),o.put(a.getLength(),B.getLengthInBits(a.getMode(),t)),a.write(o)}var u=0;for(i=0;i<n.length;i+=1)u+=n[i].dataCount;if(o.getLengthInBits()>8*u)throw"code length overflow. ("+o.getLengthInBits()+">"+8*u+")";for(o.getLengthInBits()+4<=8*u&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(!1);for(;!(o.getLengthInBits()>=8*u||(o.put(236,8),o.getLengthInBits()>=8*u));)o.put(17,8);return function(t,r){for(var e=0,n=0,o=0,i=new Array(r.length),a=new Array(r.length),u=0;u<r.length;u+=1){var f=r[u].dataCount,c=r[u].totalCount-f;n=Math.max(n,f),o=Math.max(o,c),i[u]=new Array(f);for(var g=0;g<i[u].length;g+=1)i[u][g]=255&t.getBuffer()[g+e];e+=f;var l=B.getErrorCorrectPolynomial(c),h=C(i[u],l.getLength()-1).mod(l);a[u]=new Array(l.getLength()-1);for(g=0;g<a[u].length;g+=1){var s=g+h.getLength()-a[u].length;a[u][g]=0<=s?h.getAt(s):0}}var v=0;for(g=0;g<r.length;g+=1)v+=r[g].totalCount;var d=new Array(v),w=0;for(g=0;g<n;g+=1)for(u=0;u<r.length;u+=1)g<i[u].length&&(d[w]=i[u][g],w+=1);for(g=0;g<o;g+=1)for(u=0;u<r.length;u+=1)g<a[u].length&&(d[w]=a[u][g],w+=1);return d}(o,n)};s.addData=function(t,r){var e=null;switch(r=r||"Byte"){case"Numeric":e=x(t);break;case"Alphanumeric":e=m(t);break;case"Byte":e=L(t);break;case"Kanji":e=D(t);break;default:throw"mode:"+r}c.push(e),n=null},s.isDark=function(t,r){if(t<0||l<=t||r<0||l<=r)throw t+","+r;return g[t][r]},s.getModuleCount=function(){return l},s.make=function(){if(u<1){for(var t=1;t<40;t++){for(var r=b.getRSBlocks(t,f),e=M(),n=0;n<c.length;n++){var o=c[n];e.put(o.getMode(),4),e.put(o.getLength(),B.getLengthInBits(o.getMode(),t)),o.write(e)}var i=0;for(n=0;n<r.length;n++)i+=r[n].dataCount;if(e.getLengthInBits()<=8*i)break}u=t}a(!1,function(){for(var t=0,r=0,e=0;e<8;e+=1){a(!0,e);var n=B.getLostPoint(s);(0==e||n<t)&&(t=n,r=e)}return r}())},s.createTableTag=function(t,r){t=t||2;var e="";e+='<table style="',e+=" border-width: 0px; border-style: none;",e+=" border-collapse: collapse;",e+=" padding: 0px; margin: "+(r=void 0===r?4*t:r)+"px;",e+='">',e+="<tbody>";for(var n=0;n<s.getModuleCount();n+=1){e+="<tr>";for(var o=0;o<s.getModuleCount();o+=1)e+='<td style="',e+=" border-width: 0px; border-style: none;",e+=" border-collapse: collapse;",e+=" padding: 0px; margin: 0px;",e+=" width: "+t+"px;",e+=" height: "+t+"px;",e+=" background-color: ",e+=s.isDark(n,o)?"#000000":"#ffffff",e+=";",e+='"/>';e+="</tr>"}return e+="</tbody>",e+="</table>"},s.createSvgTag=function(t,r,e,n){var o={};"object"==typeof t&&(t=(o=t).cellSize,r=o.margin,e=o.alt,n=o.title),t=t||2,r=void 0===r?4*t:r,(e="string"==typeof e?{text:e}:e||{}).text=e.text||null,e.id=e.text?e.id||"qrcode-description":null,(n="string"==typeof n?{text:n}:n||{}).text=n.text||null,n.id=n.text?n.id||"qrcode-title":null;var i,a,u,f,c=s.getModuleCount()*t+2*r,g="";for(f="l"+t+",0 0,"+t+" -"+t+",0 0,-"+t+"z ",g+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',g+=o.scalable?"":' width="'+c+'px" height="'+c+'px"',g+=' viewBox="0 0 '+c+" "+c+'" ',g+=' preserveAspectRatio="xMinYMin meet"',g+=n.text||e.text?' role="img" aria-labelledby="'+p([n.id,e.id].join(" ").trim())+'"':"",g+=">",g+=n.text?'<title id="'+p(n.id)+'">'+p(n.text)+"</title>":"",g+=e.text?'<description id="'+p(e.id)+'">'+p(e.text)+"</description>":"",g+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',g+='<path d="',a=0;a<s.getModuleCount();a+=1)for(u=a*t+r,i=0;i<s.getModuleCount();i+=1)s.isDark(a,i)&&(g+="M"+(i*t+r)+","+u+f);return g+='" stroke="transparent" fill="black"/>',g+="</svg>"},s.createDataURL=function(o,t){o=o||2,t=void 0===t?4*o:t;var r=s.getModuleCount()*o+2*t,i=t,a=r-t;return I(r,r,function(t,r){if(i<=t&&t<a&&i<=r&&r<a){var e=Math.floor((t-i)/o),n=Math.floor((r-i)/o);return s.isDark(n,e)?0:1}return 1})},s.createImgTag=function(t,r,e){t=t||2,r=void 0===r?4*t:r;var n=s.getModuleCount()*t+2*r,o="";return o+="<img",o+=' src="',o+=s.createDataURL(t,r),o+='"',o+=' width="',o+=n,o+='"',o+=' height="',o+=n,o+='"',e&&(o+=' alt="',o+=p(e),o+='"'),o+="/>"};var p=function(t){for(var r="",e=0;e<t.length;e+=1){var n=t.charAt(e);switch(n){case"<":r+="<";break;case">":r+=">";break;case"&":r+="&";break;case'"':r+=""";break;default:r+=n}}return r};return s.createASCII=function(t,r){if((t=t||1)<2)return function(t){t=void 0===t?2:t;var r,e,n,o,i,a=1*s.getModuleCount()+2*t,u=t,f=a-t,c={"██":"â–ˆ","â–ˆ ":"â–€"," â–ˆ":"â–„"," ":" "},g={"██":"â–€","â–ˆ ":"â–€"," â–ˆ":" "," ":" "},l="";for(r=0;r<a;r+=2){for(n=Math.floor((r-u)/1),o=Math.floor((r+1-u)/1),e=0;e<a;e+=1)i="â–ˆ",u<=e&&e<f&&u<=r&&r<f&&s.isDark(n,Math.floor((e-u)/1))&&(i=" "),u<=e&&e<f&&u<=r+1&&r+1<f&&s.isDark(o,Math.floor((e-u)/1))?i+=" ":i+="â–ˆ",l+=t<1&&f<=r+1?g[i]:c[i];l+="\n"}return a%2&&0<t?l.substring(0,l.length-a-1)+Array(1+a).join("â–€"):l.substring(0,l.length-1)}(r);t-=1,r=void 0===r?2*t:r;var e,n,o,i,a=s.getModuleCount()*t+2*r,u=r,f=a-r,c=Array(t+1).join("██"),g=Array(t+1).join(" "),l="",h="";for(e=0;e<a;e+=1){for(o=Math.floor((e-u)/t),h="",n=0;n<a;n+=1)i=1,u<=n&&n<f&&u<=e&&e<f&&s.isDark(o,Math.floor((n-u)/t))&&(i=0),h+=i?c:g;for(o=0;o<t;o+=1)l+=h+"\n"}return l.substring(0,l.length-1)},s.renderTo2dContext=function(t,r){r=r||2;for(var e=s.getModuleCount(),n=0;n<e;n++)for(var o=0;o<e;o++)t.fillStyle=s.isDark(n,o)?"black":"white",t.fillRect(n*r,o*r,r,r)},s}i.stringToBytes=(i.stringToBytesFuncs={default:function(t){for(var r=[],e=0;e<t.length;e+=1){var n=t.charCodeAt(e);r.push(255&n)}return r}}).default,i.createStringToBytes=function(u,f){var i=function(){function t(){var t=r.read();if(-1==t)throw"eof";return t}for(var r=S(u),e=0,n={};;){var o=r.read();if(-1==o)break;var i=t(),a=t()<<8|t();n[String.fromCharCode(o<<8|i)]=a,e+=1}if(e!=f)throw e+" != "+f;return n}(),a="?".charCodeAt(0);return function(t){for(var r=[],e=0;e<t.length;e+=1){var n=t.charCodeAt(e);if(n<128)r.push(n);else{var o=i[t.charAt(e)];"number"==typeof o?(255&o)==o?r.push(o):(r.push(o>>>8),r.push(255&o)):r.push(a)}}return r}};var r,t,a=1,u=2,o=4,f=8,y={L:1,M:0,Q:3,H:2},e=0,n=1,c=2,g=3,l=4,h=5,s=6,v=7,B=(r=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],(t={}).getBCHTypeInfo=function(t){for(var r=t<<10;0<=d(r)-d(1335);)r^=1335<<d(r)-d(1335);return 21522^(t<<10|r)},t.getBCHTypeNumber=function(t){for(var r=t<<12;0<=d(r)-d(7973);)r^=7973<<d(r)-d(7973);return t<<12|r},t.getPatternPosition=function(t){return r[t-1]},t.getMaskFunction=function(t){switch(t){case e:return function(t,r){return(t+r)%2==0};case n:return function(t,r){return t%2==0};case c:return function(t,r){return r%3==0};case g:return function(t,r){return(t+r)%3==0};case l:return function(t,r){return(Math.floor(t/2)+Math.floor(r/3))%2==0};case h:return function(t,r){return t*r%2+t*r%3==0};case s:return function(t,r){return(t*r%2+t*r%3)%2==0};case v:return function(t,r){return(t*r%3+(t+r)%2)%2==0};default:throw"bad maskPattern:"+t}},t.getErrorCorrectPolynomial=function(t){for(var r=C([1],0),e=0;e<t;e+=1)r=r.multiply(C([1,w.gexp(e)],0));return r},t.getLengthInBits=function(t,r){if(1<=r&&r<10)switch(t){case a:return 10;case u:return 9;case o:case f:return 8;default:throw"mode:"+t}else if(r<27)switch(t){case a:return 12;case u:return 11;case o:return 16;case f:return 10;default:throw"mode:"+t}else{if(!(r<41))throw"type:"+r;switch(t){case a:return 14;case u:return 13;case o:return 16;case f:return 12;default:throw"mode:"+t}}},t.getLostPoint=function(t){for(var r=t.getModuleCount(),e=0,n=0;n<r;n+=1)for(var o=0;o<r;o+=1){for(var i=0,a=t.isDark(n,o),u=-1;u<=1;u+=1)if(!(n+u<0||r<=n+u))for(var f=-1;f<=1;f+=1)o+f<0||r<=o+f||0==u&&0==f||a==t.isDark(n+u,o+f)&&(i+=1);5<i&&(e+=3+i-5)}for(n=0;n<r-1;n+=1)for(o=0;o<r-1;o+=1){var c=0;t.isDark(n,o)&&(c+=1),t.isDark(n+1,o)&&(c+=1),t.isDark(n,o+1)&&(c+=1),t.isDark(n+1,o+1)&&(c+=1),0!=c&&4!=c||(e+=3)}for(n=0;n<r;n+=1)for(o=0;o<r-6;o+=1)t.isDark(n,o)&&!t.isDark(n,o+1)&&t.isDark(n,o+2)&&t.isDark(n,o+3)&&t.isDark(n,o+4)&&!t.isDark(n,o+5)&&t.isDark(n,o+6)&&(e+=40);for(o=0;o<r;o+=1)for(n=0;n<r-6;n+=1)t.isDark(n,o)&&!t.isDark(n+1,o)&&t.isDark(n+2,o)&&t.isDark(n+3,o)&&t.isDark(n+4,o)&&!t.isDark(n+5,o)&&t.isDark(n+6,o)&&(e+=40);var g=0;for(o=0;o<r;o+=1)for(n=0;n<r;n+=1)t.isDark(n,o)&&(g+=1);return e+=Math.abs(100*g/r/r-50)/5*10},t);function d(t){for(var r=0;0!=t;)r+=1,t>>>=1;return r}var w=function(){for(var r=new Array(256),e=new Array(256),t=0;t<8;t+=1)r[t]=1<<t;for(t=8;t<256;t+=1)r[t]=r[t-4]^r[t-5]^r[t-6]^r[t-8];for(t=0;t<255;t+=1)e[r[t]]=t;var n={glog:function(t){if(t<1)throw"glog("+t+")";return e[t]},gexp:function(t){for(;t<0;)t+=255;for(;256<=t;)t-=255;return r[t]}};return n}();function C(n,o){if(void 0===n.length)throw n.length+"/"+o;var r=function(){for(var t=0;t<n.length&&0==n[t];)t+=1;for(var r=new Array(n.length-t+o),e=0;e<n.length-t;e+=1)r[e]=n[e+t];return r}(),i={getAt:function(t){return r[t]},getLength:function(){return r.length},multiply:function(t){for(var r=new Array(i.getLength()+t.getLength()-1),e=0;e<i.getLength();e+=1)for(var n=0;n<t.getLength();n+=1)r[e+n]^=w.gexp(w.glog(i.getAt(e))+w.glog(t.getAt(n)));return C(r,0)},mod:function(t){if(i.getLength()-t.getLength()<0)return i;for(var r=w.glog(i.getAt(0))-w.glog(t.getAt(0)),e=new Array(i.getLength()),n=0;n<i.getLength();n+=1)e[n]=i.getAt(n);for(n=0;n<t.getLength();n+=1)e[n]^=w.gexp(w.glog(t.getAt(n))+r);return C(e,0).mod(t)}};return i}function p(){var e=[],o={writeByte:function(t){e.push(255&t)},writeShort:function(t){o.writeByte(t),o.writeByte(t>>>8)},writeBytes:function(t,r,e){r=r||0,e=e||t.length;for(var n=0;n<e;n+=1)o.writeByte(t[n+r])},writeString:function(t){for(var r=0;r<t.length;r+=1)o.writeByte(t.charCodeAt(r))},toByteArray:function(){return e},toString:function(){var t="";t+="[";for(var r=0;r<e.length;r+=1)0<r&&(t+=","),t+=e[r];return t+="]"}};return o}var k,A,b=(k=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],(A={}).getRSBlocks=function(t,r){var e=function(t,r){switch(r){case y.L:return k[4*(t-1)+0];case y.M:return k[4*(t-1)+1];case y.Q:return k[4*(t-1)+2];case y.H:return k[4*(t-1)+3];default:return}}(t,r);if(void 0===e)throw"bad rs block @ typeNumber:"+t+"/errorCorrectionLevel:"+r;for(var n,o,i=e.length/3,a=[],u=0;u<i;u+=1)for(var f=e[3*u+0],c=e[3*u+1],g=e[3*u+2],l=0;l<f;l+=1)a.push((n=g,o=void 0,(o={}).totalCount=c,o.dataCount=n,o));return a},A),M=function(){var e=[],n=0,o={getBuffer:function(){return e},getAt:function(t){var r=Math.floor(t/8);return 1==(e[r]>>>7-t%8&1)},put:function(t,r){for(var e=0;e<r;e+=1)o.putBit(1==(t>>>r-e-1&1))},getLengthInBits:function(){return n},putBit:function(t){var r=Math.floor(n/8);e.length<=r&&e.push(0),t&&(e[r]|=128>>>n%8),n+=1}};return o},x=function(t){var r=a,n=t,e={getMode:function(){return r},getLength:function(t){return n.length},write:function(t){for(var r=n,e=0;e+2<r.length;)t.put(o(r.substring(e,e+3)),10),e+=3;e<r.length&&(r.length-e==1?t.put(o(r.substring(e,e+1)),4):r.length-e==2&&t.put(o(r.substring(e,e+2)),7))}},o=function(t){for(var r=0,e=0;e<t.length;e+=1)r=10*r+i(t.charAt(e));return r},i=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);throw"illegal char :"+t};return e},m=function(t){var r=u,n=t,e={getMode:function(){return r},getLength:function(t){return n.length},write:function(t){for(var r=n,e=0;e+1<r.length;)t.put(45*o(r.charAt(e))+o(r.charAt(e+1)),11),e+=2;e<r.length&&t.put(o(r.charAt(e)),6)}},o=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);if("A"<=t&&t<="Z")return t.charCodeAt(0)-"A".charCodeAt(0)+10;switch(t){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+t}};return e},L=function(t){var r=o,e=i.stringToBytes(t),n={getMode:function(){return r},getLength:function(t){return e.length},write:function(t){for(var r=0;r<e.length;r+=1)t.put(e[r],8)}};return n},D=function(t){var r=f,e=i.stringToBytesFuncs.SJIS;if(!e)throw"sjis not supported.";!function(){var t=e("å‹");if(2!=t.length||38726!=(t[0]<<8|t[1]))throw"sjis not supported."}();var o=e(t),n={getMode:function(){return r},getLength:function(t){return~~(o.length/2)},write:function(t){for(var r=o,e=0;e+1<r.length;){var n=(255&r[e])<<8|255&r[e+1];if(33088<=n&&n<=40956)n-=33088;else{if(!(57408<=n&&n<=60351))throw"illegal char at "+(e+1)+"/"+n;n-=49472}n=192*(n>>>8&255)+(255&n),t.put(n,13),e+=2}if(e<r.length)throw"illegal char at "+(e+1)}};return n},S=function(t){var e=t,n=0,o=0,i=0,r={read:function(){for(;i<8;){if(n>=e.length){if(0==i)return-1;throw"unexpected end of file./"+i}var t=e.charAt(n);if(n+=1,"="==t)return i=0,-1;t.match(/^\s$/)||(o=o<<6|a(t.charCodeAt(0)),i+=6)}var r=o>>>i-8&255;return i-=8,r}},a=function(t){if(65<=t&&t<=90)return t-65;if(97<=t&&t<=122)return t-97+26;if(48<=t&&t<=57)return t-48+52;if(43==t)return 62;if(47==t)return 63;throw"c:"+t};return r},I=function(t,r,e){for(var n=function(t,r){var n=t,o=r,l=new Array(t*r),e={setPixel:function(t,r,e){l[r*n+t]=e},write:function(t){t.writeString("GIF87a"),t.writeShort(n),t.writeShort(o),t.writeByte(128),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(255),t.writeByte(255),t.writeByte(255),t.writeString(","),t.writeShort(0),t.writeShort(0),t.writeShort(n),t.writeShort(o),t.writeByte(0);var r=i(2);t.writeByte(2);for(var e=0;255<r.length-e;)t.writeByte(255),t.writeBytes(r,e,255),e+=255;t.writeByte(r.length-e),t.writeBytes(r,e,r.length-e),t.writeByte(0),t.writeString(";")}},i=function(t){for(var r=1<<t,e=1+(1<<t),n=t+1,o=h(),i=0;i<r;i+=1)o.add(String.fromCharCode(i));o.add(String.fromCharCode(r)),o.add(String.fromCharCode(e));var a=p(),u=function(t){var e=t,n=0,o=0,r={write:function(t,r){if(t>>>r!=0)throw"length over";for(;8<=n+r;)e.writeByte(255&(t<<n|o)),r-=8-n,t>>>=8-n,n=o=0;o|=t<<n,n+=r},flush:function(){0<n&&e.writeByte(o)}};return r}(a);u.write(r,n);var f=0,c=String.fromCharCode(l[f]);for(f+=1;f<l.length;){var g=String.fromCharCode(l[f]);f+=1,o.contains(c+g)?c+=g:(u.write(o.indexOf(c),n),o.size()<4095&&(o.size()==1<<n&&(n+=1),o.add(c+g)),c=g)}return u.write(o.indexOf(c),n),u.write(e,n),u.flush(),a.toByteArray()},h=function(){var r={},e=0,n={add:function(t){if(n.contains(t))throw"dup key:"+t;r[t]=e,e+=1},size:function(){return e},indexOf:function(t){return r[t]},contains:function(t){return void 0!==r[t]}};return n};return e}(t,r),o=0;o<r;o+=1)for(var i=0;i<t;i+=1)n.setPixel(i,o,e(i,o));var a=p();n.write(a);for(var u=function(){function e(t){a+=String.fromCharCode(r(63&t))}var n=0,o=0,i=0,a="",t={},r=function(t){if(t<0);else{if(t<26)return 65+t;if(t<52)return t-26+97;if(t<62)return t-52+48;if(62==t)return 43;if(63==t)return 47}throw"n:"+t};return t.writeByte=function(t){for(n=n<<8|255&t,o+=8,i+=1;6<=o;)e(n>>>o-6),o-=6},t.flush=function(){if(0<o&&(e(n<<6-o),o=n=0),i%3!=0)for(var t=3-i%3,r=0;r<t;r+=1)a+="="},t.toString=function(){return a},t}(),f=a.toByteArray(),c=0;c<f.length;c+=1)u.writeByte(f[c]);return u.flush(),"data:image/gif;base64,"+u};return i}();qrcode.stringToBytesFuncs["UTF-8"]=function(t){return function(t){for(var r=[],e=0;e<t.length;e++){var n=t.charCodeAt(e);n<128?r.push(n):n<2048?r.push(192|n>>6,128|63&n):n<55296||57344<=n?r.push(224|n>>12,128|n>>6&63,128|63&n):(e++,n=65536+((1023&n)<<10|1023&t.charCodeAt(e)),r.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return r}(t)},function(t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports&&(module.exports=t())}(function(){return qrcode}); //]]></script> <script type='text/javascript'>//<![CDATA[ // Wrap everything in a module pattern to avoid global scope pollution (function () { // Function to initialize the extension function initializeExtension() { const ssidInput = document.getElementById('ssid'); const passwordInput = document.getElementById('password'); const encryptionSelect = document.getElementById('encryption'); const generateBtn = document.getElementById('generateBtn'); const saveBtn = document.getElementById('saveBtn'); const viewSavedBtn = document.getElementById('viewSavedBtn'); const printBtn = document.getElementById('printBtn'); // Reference to Print button const qrcodeDiv = document.getElementById('qrcode'); // Safely check if qrcode function exists function isQRCodeAvailable() { return typeof window.qrcode === 'function'; } // Function to generate WiFi QR Code function generateWiFiQRCode() { const ssid = ssidInput.value; const password = passwordInput.value; const encryption = encryptionSelect.value; if (!ssid) { alert('Vui lòng nhập tên WiFi (SSID)'); return null; } // Check if qrcode is available if (!isQRCodeAvailable()) { console.error('QR Code generator not loaded'); alert('Lỗi: Trình tạo mã QR không được tải'); return null; } // Generate QR Code string for WiFi const qrString = `WIFI:T:${encryption};S:${ssid};P:${password};;`; try { // Use window.qrcode to be explicit const qr = window.qrcode(0, 'M'); qr.addData(qrString); qr.make(); return qr.createImgTag(5); } catch (error) { console.error('QR Code generation error:', error); alert('Lỗi khi tạo mã QR'); return null; } } // Event listener for Generate QR Code generateBtn.addEventListener('click', function () { const qrCodeImg = generateWiFiQRCode(); if (qrCodeImg) { qrcodeDiv.innerHTML = qrCodeImg; } }); // Event listener for Save QR Code saveBtn.addEventListener('click', function () { const ssid = ssidInput.value; const qrCodeImg = generateWiFiQRCode(); if (qrCodeImg) { // Save to localStorage const savedCodes = JSON.parse(localStorage.getItem('wifiQRCodes') || '[]'); savedCodes.push({ ssid: ssid, qrCode: qrCodeImg, timestamp: new Date().toISOString() }); localStorage.setItem('wifiQRCodes', JSON.stringify(savedCodes)); alert('Mã QR đã được lưu thành công!'); } }); // Event listener for View Saved Codes viewSavedBtn.addEventListener('click', function () { // Open saved-codes.html in a new tab chrome.tabs.create({ url: 'saved-codes.html' }); }); // Event listener for Print QR Code printBtn.addEventListener('click', function () { // Check if a QR Code is available if (!qrcodeDiv.innerHTML.trim() || !qrcodeDiv.querySelector('img')) { alert('Vui lòng tạo Mã QR trước khi in.'); return; } // Create a new window for printing const printWindow = window.open('', '_blank'); printWindow.document.write(` <html> <head> <title>Print QR Code</title> <style> body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; font-family: Arial, sans-serif; } img { max-width: 900px; /* Increase the size here */ height: auto; } </style> </head> <body> ${qrcodeDiv.innerHTML} </body> </html> `); printWindow.document.close(); printWindow.focus(); printWindow.print(); }); } // Use DOMContentLoaded to ensure all elements are loaded document.addEventListener('DOMContentLoaded', initializeExtension); })(); //]]></script>
Tham gia cuộc trò chuyện