使用共用js实现二维码的生成,让二维码直接在页面中显示

一、前期的准备工作

首先jquery.min.js,jquery.qrcode.min.js这两个js是必须要加的,而且在页面中加载的顺序也要是这样:jquery.min.js必须在前,因为jquery.qrcode.min.js中用到前一个js中的方法。jquery.qrcode.min.js将生成二位的方法封装起来,用它来实现图形渲染,其实就是画图(支持canvas和table两种方式)

两个js下载的官网地址:https://github.com/jeromeetienne/jquery-qrcode

二、js实现二维码

在jsp页面中:

复制代码
<div class="two-dimensionCode-state text-center">
            <div id="qrcode"></div>
            <div class="form-group">
             可截图分享或用手机扫描二维码查看
             </div>
 </div>
复制代码

在js中:
$('#qrcode').qrcode(realPath); //生成二维码,realPath是生成二维码的路径

然而,这种实现时,路径名中的中文字段会乱码,如何解决呢?针对这个问题,网上也有相关的解决方案,我也找到一个可以解决这个问题的方案,贴出以供参考:

复制代码
 1 function toUtf8(str) {   //地址中可用中文字符 
 2     var out, i, len, c;    
 3     out = "";    
 4     len = str.length;    
 5     for(i = 0; i < len; i++) {    
 6         c = str.charCodeAt(i);    
 7         if ((c >= 0x0001) && (c <= 0x007F)) {    
 8             out += str.charAt(i);    
 9         } else if (c > 0x07FF) {    
10             out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));    
11             out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));    
12             out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));    
13         } else {    
14             out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));    
15             out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));    
16         }    
17     }    
18     return out;    
19 };
复制代码

所以,js中的应用:

var path="http://192.168.1.1:8080/pc/download";
var
realPath=toUtf8(path); $('#qrcode').qrcode(realPath); //生成二维码

js生成二维码内容扩展:

复制代码
var path="http://127.1.1.1:8080/pc/dowmload";
var realPath=toUtf8(path);
$("qrcode").qrcode(
    text : realpath  //设置二维码内容  
    render : "canvas",//设置渲染方式  
    width : 256,     //设置宽度,默认生成的二维码大小是 256×256
    height : 256,     //设置高度  
    typeNumber : -1,      //计算模式  
    correctLevel : QRErrorCorrectLevel.H,//纠错等级  
    background : "#ffffff",//背景颜色  
    foreground : "#000000" //前景颜色  
);
复制代码

 

对于该种生成二维码,如何存储这些数据呢?可以根据需要进行存储。

重点:对于生成二维码的地址进行解析:

var path="http://192.168.1.1:8080/pc/download";

解析:192.168.1.1是域名(在cmd中使用ipconfig进行查询,有线或者无线的域名),

注意

①如果是内网的无线,扫描二维码的手机(连接的无线网)要与二维码的域名相同;

②如果二维码域名是内网有线,扫描二维码的手机连接的无线可以是内部任意无线;

③如果二维码域名是外网,扫描二维码的手机可以是连接的任意网络

前两者介绍主要为了是针对公司内部人员测试所用。

 三、jquery.qrcode.min.js效果展示

1.Canvas 方式渲染

2. Table 方式渲染,并加了 1px 描边。

相对比之下,canvas的渲染方式更稳定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值