之前寫過一個二維碼掃描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實現二維碼掃描并登陸網頁的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
新聞熱點
疑難解答