欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现二维码扫描并登陆网页

程序员文章站 2024-03-01 11:30:16
之前写过一个二维码扫描demo,用的zxing的框架,点击下载,后续扫描二维码中出现一些问题,比如解决压缩图片,调整扫描窗口大小等等。后续单位要求做扫描登录实现,发现难点就...

之前写过一个二维码扫描demo,用的zxing的框架,点击下载,后续扫描二维码中出现一些问题,比如解决压缩图片,调整扫描窗口大小等等。后续单位要求做扫描登录实现,发现难点就是怎么知道你扫描的是这台电脑,后台必须获取到(后台技术的问题)然后把这个参数给我,再传递到后台,后台判断登录即可。这样自己扫描后直接传递个参数就可以实现登录了。

效果如下:

Android实现二维码扫描并登陆网页

大概代码实现:扫描跳转:

//扫描登录a
case r.id.tv_more_qr:
if (pventquickclick.isfastdoubleclick()) {
break;
}
dialogutils.showcommonpopupwindow(context);
myapplication.checklogin(context, new appcallback() {
@override
public void appcallback(string userid) {
// todo auto-generated method stub
dialogutils.dismisscommonpopupwindow();
intent opencameraintent = new intent(context,captureactivity.class);//zing框架的类
startactivityforresult(opencameraintent,0);
}
});
break;

然后扫描后会返回扫描的结果在onactivityresult

@override
public void onactivityresult(int requestcode, int resultcode, intent data) {
super.onactivityresult(requestcode, resultcode, data);

if (resultcode == getactivity().result_ok) {
bundle bundle = data.getextras();
string qrresult = bundle.getstring(result);
logutils.log_e(qrresult, qrresult);
int scan= qrresult.indexof(+);
//对切取字符串判断
//登录
if(scan>0){
string starts = qrresult.substring(0, scan);
string ends = qrresult.substring(scan+1, qrresult.length());
logutils.log_e(starts, starts+.......+ends);
if(ends.equals(qrlogin)){
intent intent = new intent(context,qrlogin.class);//跳转到确认登录界面
intent.putextra(scanresult, starts);
startactivity(intent);
}
}else if(stringutils.geturl(qrresult)){//是html的链接直接跳转浏览器,比如apk下载等等
intent intent =new intent();
intent.setaction(android.intent.action.view);
uri content_url =uri.parse(qrresult);
intent.setdata(content_url);
startactivity(intent);
}else if(!stringutils.geturl(qrresult)){
toast.maketext(getactivity(), 客官,您扫的找不到呀!!, 0).show();
}
}
}

然后跳转到确认登录界面:

点击判断传参:

@override
protected void baseonclick(view v) {
switch (v.getid()) {
case r.id.tv_qr_login:
// toast.maketext(qrlogin.this, 登录, 0).show();
dialogutils.showcommonpopupwindow(qrlogin.this);
linkedhashmap get_checkqrcodelogin = new linkedhashmap();
get_checkqrcodelogin.put(key, myapplication.getuserstate(loginkey));// android 固定为1
get_checkqrcodelogin.put(sessionid, sessionid);// android 固定为1
httpmanager.getcheckqrcodelogin(get_checkqrcodelogin, new netcallback() {
@override
public void callback(string result) {
dialogutils.dismisscommonpopupwindow();
logutils.log_e(getcheckqrcodelogin, result);
final checkqrcodelogin checkqrcode = jsonutils.getbeanfromjson(
result, checkqrcodelogin.class);
if(checkqrcode.code.equals(1)){
toast.maketext(qrlogin.this, 登录成功, 0).show();
finish();
}
}
});
break;

以上所述是小编给大家介绍的android实现二维码扫描并登陆网页的相关知识,希望对大家有所帮助