之前写过一个二维码扫描demo,用的Zxing的框架,点击下载,后续扫描二维码中出现一些问题,比如解决压缩图片,调整扫描窗口大小等等。后续单位要求做扫描登录实现,发现难点就是怎么知道你扫描的是这台电脑,后台必须获取到(后台技术的问题)然后把这个参数给我,再传递到后台,后台判断登录即可。这样自己扫描后直接传递个参数就可以实现登录了。
效果如下:
大概代码实现:扫描跳转:
//扫描登录acase R.id.tv_more_qr:if (PventQuickClick.isFastDoubleClick()) {break;}DialogUtils.showCommonPopupWindow(context);MyApplication.checkLogin(context, new APPCallback() {@Overridepublic void appCallback(String userid) {// TODO Auto-generated method stubDialogUtils.dismissCommonPopupWindow();Intent openCameraIntent = new Intent(context,CaptureActivity.class);//Zing框架的类startActivityForResult(openCameraIntent,0);}});break;
然后扫描后会返回扫描的结果在onActivityResult
@Overridepublic 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();}}}
然后跳转到确认登录界面:
点击判断传参:
@Overrideprotected 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 固定为1get_checkqrcodelogin.put(sessionid, sessionid);// android 固定为1HttpManager.GetCheckQrCodeLogin(get_checkqrcodelogin, new NetCallBack() {@Overridepublic 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实现二维码扫描并登陆网页的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!
新闻热点
疑难解答