您的位置:首页 > 移动开发 > Android开发

Android实现二维码扫描登录网页

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



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

//扫描登录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<String, String> get_checkqrcodelogin = new LinkedHashMap<String, String>();
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;


这样就可以实现二维码扫描登录,二维码demo下载解决扫描框大小和图片压缩问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: