二維碼登錄java代碼 掃碼登錄javademo

Java如何用代碼生成二維碼

引用spire.barcode.jar包

為云巖等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及云巖網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、云巖網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

//創(chuàng)建BarcodeSettings對象

BarcodeSettings?settings?=?new?BarcodeSettings();

//設(shè)置條碼類型為

QR二維碼settings.setType(BarCodeType.QR_Code);???????

//設(shè)置二維碼數(shù)據(jù)

settings.setData("Hello?123456789");

//設(shè)置二維碼顯示數(shù)據(jù)

settings.setData2D("Hello?123456789");?????

//設(shè)置數(shù)據(jù)類型

settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);

//設(shè)置二維碼模型寬度

settings.setX(1.0f);

//設(shè)置二維碼糾錯級別settings.setQRCodeECL(QRCodeECL.H);

//創(chuàng)建BarCodeGenerator實例

BarCodeGenerator?barCodeGenerator?=?new?BarCodeGenerator(settings);

//根據(jù)settings生成圖像數(shù)據(jù),保存至BufferedImage

BufferedImage?bufferedImage?=?barCodeGenerator.generateImage();

//將圖片數(shù)據(jù)保存為PNG格式

ImageIO.write(bufferedImage,?"png",?new?File("QRCode.png"));

如何使用java開發(fā)二維碼代碼

1: 使用SwetakeQRCode在Java項目中生成二維碼

下載地址

或著

這個是日本人寫的,生成的是我們常見的方形的二維碼

可以用中文

如:5677777ghjjjjj

2: 使用BarCode4j生成條形碼和二維碼

BarCode4j網(wǎng)址:

barcode4j是使用datamatrix的二維碼生成算法,為支持qr的算法

datamatrix是歐美的標(biāo)準(zhǔn),qr為日本的標(biāo)準(zhǔn),

barcode4j一般生成出來是長方形的

如:88777alec000yan

這個博客這方面說的挺清楚的:

3:zxing

zxing 這個是google的

下載地址

Java代碼:

import java.io.File;

import java.util.Hashtable;

import com.google.zxing.BarcodeFormat;

import com.google.zxing.EncodeHintType;

import com.google.zxing.MultiFormatWriter;

import com.google.zxing.client.j2se.MatrixToImageWriter;

import com.google.zxing.common.BitMatrix;

import com.google.zxing.qrcode.QRCodeWriter;

public class QRCodeEvents {

public static void main(String []args)throws Exception{

String text = "你好";

int width = 100;

int height = 100;

String format = "png";

Hashtable hints= new Hashtable();

hints.put(EncodeHintType.CHARACTER_SET, "utf-8");

BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height,hints);

File outputFile = new File("new.png");

MatrixToImageWriter.writeToFile(bitMatrix, format, outputFile);

}

}

4:google chart api就有實現(xiàn)二維碼的方法

利用這個api,使用google appengine進行實現(xiàn)。

5:JS生成二維碼

使用jQuery-qrcode生成二維碼

先簡單說一下jquery-qrcode,這個開源的三方庫(可以從 獲?。?,

qrcode.js 是實現(xiàn)二維碼數(shù)據(jù)計算的核心類,

jquery.qrcode.js 是把它用jquery方式封裝起來的,用它來實現(xiàn)圖形渲染,其實就是畫圖(支持canvas和table兩種方式)

支持的功能主要有:

Js代碼:

text : "" //設(shè)置二維碼內(nèi)容

Js代碼:

render : "canvas",//設(shè)置渲染方式

width : 256, //設(shè)置寬度

height : 256, //設(shè)置高度

typeNumber : -1, //計算模式

correctLevel : QRErrorCorrectLevel.H,//糾錯等級

background : "#ffffff",//背景顏色

foreground : "#000000" //前景顏色

使用方式非常簡單

Js代碼:

jQuery('#output').qrcode({width:200,height:200,correctLevel:0,text:content});

經(jīng)過簡單實踐,

使用canvas方式渲染性能還是非常不錯的,但是如果用table方式,性能不太理想,特別是IE9以下的瀏覽器,所以需要自行優(yōu)化一下渲染table的方式,這里就不細(xì)述了。

其實上面的js有一個小小的缺點,就是默認(rèn)不支持中文。

這跟js的機制有關(guān)系,jquery-qrcode這個庫是采用 charCodeAt() 這個方式進行編碼轉(zhuǎn)換的,

而這個方法默認(rèn)會獲取它的 Unicode 編碼,一般的解碼器都是采用UTF-8, ISO-8859-1等方式,

英文是沒有問題,如果是中文,一般情況下Unicode是UTF-16實現(xiàn),長度2位,而UTF-8編碼是3位,這樣二維碼的編解碼就不匹配了。

解決方式當(dāng)然是,在二維碼編碼前把字符串轉(zhuǎn)換成UTF-8,具體代碼如下:

function utf16to8(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;

}

怎么用Java實現(xiàn)一個掃二維碼的登錄

要做到快速的頁面上掃描,手機確認(rèn),登陸到界面,使用get操作是不現(xiàn)實的,使用WebSocket才能快速的推送消息。

界面中在首次打開時,就向服務(wù)器建立一個WebSocket鏈接,然后監(jiān)聽OnMessage方法。

手機中掃碼后,通過發(fā)送一個消息到服務(wù)器后臺,服務(wù)器后臺再通過webSocket找出那個頁面的位置,發(fā)送消息過去,讓其登陸。

比如115網(wǎng)盤的二維碼,就是一個長串,雖然看不懂,但是最簡單的做法就是WebSocket里面的Session的id,通過這個id,訪問一個指向行頁面,里面帶上115用戶的用戶id就可以了,你可以在115主頁上面選擇二維碼,然后查看其二維碼的信息,以及圖片里的uid信息。

當(dāng)前文章:二維碼登錄java代碼 掃碼登錄javademo
URL鏈接:http://muchs.cn/article18/dosjggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、網(wǎng)站策劃ChatGPT、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)