Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android實現二維碼掃描並登陸網頁

Android實現二維碼掃描並登陸網頁

編輯:關於Android編程

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

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved