Android实现二维码扫描登录网页 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    之前写过一个二维码扫描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 penCameraIntent = 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;</string,></string,>

    这样就可以实现二维码扫描登录,二维码demo下载,解决扫描框大小和图片压缩问题

最新文章