이 사이트는 전자정부 표준프레임워크 구버전(1.0 ~ 4.3) 가이드 아카이브입니다. 내용은 더 이상 갱신되지 않습니다. 최신 내용은 최신 버전 문서에서 확인하세요.

모바일 디바이스 API 3.6

Barcodescanner 디바이스API 가이드 프로그램

개요

Barcodescanner API 가이드 프로그램은 Barcodescanner API 실행환경을 활용하여 하이브리드 앱을 개발하시는 분들이 디바이스 기기에서 Barcodescanner을 통하여 바코드, QR코드등 정보를 확인 할 수 있는 기능을 구현하는 데 참고 및 활용 할 수 있는 가이드 앱입니다.

특징

본 가이드 프로그램 에서는 바코드, QR코드등의 정보 조회 기능의 활용을 가이드 할 수 있도록 QR코드 및 바코드 인식하기, 정보 서버에 전송하기, 인식결과 서버 조회 를 제공하고 있다.

기능흐름도

barcodescanner_in2.jpeg

전제 조건

전제 조건
구분 내용
Local 디바이스 개발 환경전자정부표준프레임워크 개발환경3.6, Android SDK API 23(version 6.0 Marshmallow)
서버 사이드 개발 환경전자정부표준프레임워크 개발환경3.6
Mash up Open API 연계N/A
테스트 디바이스 Galaxy S2, G5
테스트 플랫폼 Android 2.3, Android 6.0
추가 라이브러리 적용N/A

제약사항

제약사항
구분 내용
지원 디바이스 및 플랫폼N/A
크로스 도메인 사용폰갭에서 특정 외부 도메인이나 외부 도메인의 하위 도메인을 사용해야할 경우,
Res/xml/config.xml에서 <access origin=“” />에 외부 도메인 주소를 추가 설정해야 외부 도메인에 접속할 수 있다.
라이선스N/A

설명

Barcodescanner API 가이드 프로그램은 크게 QR코드 및 바코드 인식하기, 인식결과 조회
기능으로 구성되어 있다.(관련기능 부분참조)

Device Application

관련 소스

관련 소스
유형대상소스명비고
Activitykr.go.egovframework.hyb.barcodescannerapp.barcodescannerappAPIGuide_AndroidActivityBarcodescannerappAPI 가이드 프로그램 Activity Class
CSSassets/www/css/egovframwork/mbl/hyb/Barcodescanner.css BarcodescannerAPI 가이드 프로그램 주요 Cascading Style Sheets
IMAGE assets/www/images/egovframwork/mbl/hyb/ BarcodescannerAPI 가이드 프로그램 주요 Image 폴더
JS assets/www/js/egovframwork/mbl/hyb/barcodescanner.js BarcodescannerAPI 가이드 프로그램 주요 JavaScript
RES assets/www/res/ BarcodescannerAPI 가이드 프로그램 주요 Resource 폴더
XML AndroidManiFest.xml 안드로이드 어플리케이션 설정 XML
HTMLassets/www/Barcodescanner.htmlBarcodescannerAPI 메인 페이지
HTMLassets/www/intro.htmlBarcodescannerAPI Intro 페이지
HTMLassets/www/license.htmlBarcodescannerAPI 라이센스 페이지
HTMLassets/www/overview.htmlBarcodescannerAPI 기능설명 페이지

활용 API

Barcodescanner
  • QR코드, 바코드 등의 관련 정보를 조회한다.
	scanformats = result.format;
	scanContents = result.text;
	result.cancelled;
Barcodescanner
변수설명비고
formatQR코드 및 바코드의 유형을 반환한다.
textQR코드 및 바코드 데이터의 텍스트을 반환한다.
cancelledQR코드 및 바코드의 형태를 사용자가 검색을 취소여부를 반환한다.

Server Application

관련 소스

관련 소스
유형대상소스명비고
Controlleregovframework.hyb.mbl.bar.web.EgovBarcodescannerDeviceAPIController.javaBarcodescannerAPI 가이드 프로그램 Controller Class
Serviceegovframework.hyb.mbl.bar.service.EgovBarcodescannerAPIService.javaBarcodescannerAPI 가이드 프로그램 Service Class
ServiceImplegovframework.hyb.mbl.bar.service.impl.EgovBarcodescannerDeviceAPIServiceImpl.javaBarcodescannerAPI 가이드 프로그램 ServiceImpl Class
VOegovframework.hyb.mbl.bar.service.BarcodescannerAPIVO.javaBarcodescannerAPI 가이드 프로그램 VO Class
DAOegovframework.hyb.mbl.bar.service.impl.BarcodescannerDeviceAPIDAO.javaBarcodescannerAPI 가이드 프로그램 Dao Class
QUERY XMLresources/egovframework/sqlmap/hyb/mbl/bar/EgovBarcodescannerAPIGuide_SQL_xxx.xmlBarcodescannerAPI 가이드 프로그램 QUERY XML

관련 테이블

관련 테이블
테이블명테이블명(영문)비고
바코드스캐너barcode_infoBarcodescanner 정보 관리

테이블 정의서

  • Barcodescanner
테이블 정의서
No컬럼ID컬럼명타입길이NULL
1SN일련번호NUMERIC11NotNull
2CODE_TYPE바코드 종류VARCHAR45NotNull
3CODE_TEXT바코드 데이터의 텍스트VARCHAR45Null
4USEYN활성화여부VARCHAR45Null
5CODE_DT등록일자VARCHAR45Null

ERD

newapi_erd.jpg

환경설정

Barcodescanner API 가이드 프로그램에서 제공하는 모바일 Barcodescanner의 정보 조회 기능을 활용하기 위하여 필요한 항목 및 그 환경 설정은 다음과 같다.

Barcodescanner Application

res/xml/config.xml

    <!--전자정부 Interface 디바이스 API를 사용하기 위한 Phonegap Plugin 클래스-->
    <plugin name="EgovInterfacePlugin" value="kr.go.egovframework.hyb.plugin.EgovInterfacePlugin" />

res/values/serverinfo.xml

    <!--전자정부 Interface 디바이스 API에서 사용하기 위한 서버경로 설정-->
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
	<string name="SERVER_URL">http://192.168.100.222:8080/DeviceAPIGuideTotal_Web_V1.7.1</string>
    </resources>

AndroidManifest.xml

     <uses-permission android:name="android.permission.CAMERA" />
     <uses-feature android:name="android.hardware.camera" android:required="false" />

Server Application

resource/egovframework/sqlmap/sql-map-config_[DB명].xml

<sqlMap resource="egovframework/sqlmap/hyb/mbl/bar/EgovBarcodescannerAPIGuide_SQL_[DB명].xml"/>

관련기능

BarcodescannerAPI 가이드 프로그램은 크게 Barcodescanner이용으로 QR코드 및 바코드의 정보 조회 기능과 조회된 메타 정보를 서버에 전송하고 조회할수 있는 기능으로 구성되어 있다.

Barcodescanner 정보 조회하기

관련 코드

Barcodescanner 정보 VO
/** Barcodescanner 정보  VO */
var BarcodescannerAPIVO = {
    sn : "",
    codeType : "",
    codeText : "",
    useYn : "",
    sndDt : ""
}
Barcodescanner 정보 화면 표시
function fn_egov_load_BarcodescannerInfo() {

	$('.scannerInfo:eq(0)').html(scanformats);
	$('.scannerInfo:eq(1)').html(scanContents);

	$.mobile.changePage('#BarcodescannerInfo', 'slide', false, false);
}

관련 화면 및 수행매뉴얼

관련 화면 및 수행매뉴얼
Barcodescanner 정보조회 화면
barcodescanner_2.jpeg

Formats: QR코드 및 바코드 유형
Contents : QR코드 및 바코드의 텍스트 정보

Barcodescanner 정보 서버에 전송하기

비즈니스 규칙

  • Barcodescanner 정보의 서버 전송은 InterfaceAPI를 이용한다.

관련 코드

Barcodescanner 정보 등록
function fn_egov_save_BarcodescannerInfo() {

	
	useYn = "Y";

	var url = "/bar/addBarcodescannerDeviceInfo.do";
	
	var formats = $(".scannerInfo:eq(0)").text();
	var contents = $(".scannerInfo:eq(1)").text();
	

	nowdate = new Date();
	var date_str = nowdate.getFullYear() + "-" + (nowdate.getMonth() + 1) + "-"
			+ nowdate.getDate();

	var params = {
		codeType : formats,
		codeText : contents,
		useYn : useYn,
		sndDt : date_str		
	};

	window.plugins.EgovInterface.request(url, params, function(jsondata) {
		console.log("jsondata > " + jsondata);

		if (jsondata.resultState == "OK") {
			console.log("send  ok");
		} else {
			$("#alert_dialog").click(function() {
				jAlert('데이터 전송 중 오류가 발생 했습니다.', '전송 오류', 'c');
			});
		}

	}, function(result) {
		alert("error > " + result);
	});

	console.log("BarcodescannerDevice fn_egov_save_BarcodescannerInfo request Completed");
	
	$.mobile.changePage("#main", "slide", false, false);
	detailScroll.refresh();

}

관련 화면 및 수행매뉴얼

관련 화면 및 수행매뉴얼
ActionURLController methodQueryID
Barcodescanner 정보 등록/bar/addBarcodescannerDeviceInfo.doinsertDeviceInfo“barcodescannerDeviceAPIDAO.insertBarcodescannerDevcie”

정보 업로드: Barcodescanner 정보를 서버로 업로드 한다.

Barcodescanner 정보 목록 조회하기

관련 코드

Barcodescanner 정보 목록 조회
function fn_egov_move_BarcodescanneList() {
    var url = "/bar/BarcodescannerInfoList.do";
    var accept_type = "json";    
    var params = {useYn : "Y" };
    
    // get the data from server
    window.plugins.EgovInterface.request(url, params, function(jsonData) {
        var list_html = "";
        
        $(jsonData["BarcodescannerInfoList"]).each(function(idx,obj){
            var sn = obj.sn;
            var codeType = obj.codeType;
            var codeText = obj.codeText;
            var sndDt = obj.sndDt;
            
            list_html += "<li><h3>CodeType : " + codeType + "</h3>";
            list_html += "<p><strong>CodeText : " + codeText + "</strong></p>";
            list_html += "<p>Date : " + sndDt + "</p></li>";
        });
        
        console.log("BarcodescanneAPIGuide fn_egov_move_BarcodescanneList request Completed");
        
        var theList = $('#BarcodeInfoList');
        theList.html(list_html);
        $.mobile.changePage("#BarcodescannerList", "slide", false, false);
        theList.listview("refresh");
        detailScroll.refresh();
        listScroll.refresh();
        
    });    
}

관련 화면 및 수행매뉴얼

관련 화면 및 수행매뉴얼
ActionURLController methodQueryID
Barcodescanner 정보 목록 조회/bar/BarcodescannerInfoList.doselectBarcodescannerList“barcodescannerDeviceAPIDAO.selectBarcodescannerDevcieList”
관련 화면 및 수행매뉴얼
Barcodescanner 정보목록 조회 화면
barcodescanner_5.jpeg

디바이스 정보 조회 : 디바이스 정보 조회를 요청한다.
목록 : 디바이스 정보 목록 페이지를 호출한다.
삭제 : 디바이스 정보를 삭제한다.

컴파일 디버깅 배포

컴파일

DevicdInfoAPI Device Applicaton 컴파일 방법

  • 프로젝트 선택 > 오른쪽 클릭 > Run As > Android Application

카메라_컴파일1.png

  • 상단의 메뉴 > Run As > Android Application

카메라_컴파일2.png

  • 실행할 타겟 선택 > 에뮬레이터, 디바이스(디버깅모드)

디바이스컴파일.png

  • 디바이스를 이용한 실행 화면

barcodescanner_ma.jpeg

DeviceInfoAPI Server Applicaton 컴파일 방법

  • BarcodescannerAPI 서버사이드 가이드 프로그램의 실행은 프로젝트를 마우스 오른쪽 버튼을 클릭 한후 Run As>Run On Server 버튼을 통해 실행 할 수 있다.

서버실행.png

  • 빌드가 성공적으로 수행 되면 이클립스의 콘솔 창에서 'Server Startup in xxx ms' 메시지를 확인 할 수 있다.

서버실행결과_콘솔.png

디버깅

Barcodescanner 어플리케이션에서 발생한 오류 내용 확인 및 디버깅을 위해서는 폰갭 프레임워크에서 제공하는 console.log를 이용할 수 있다. console.log 함수는 자바스크립트 구문에서 사용할 수 있는 디버그 코드로 이클립스 및 Xcode에서 확인 할 수 있다.

console.log의 작성 방법의 예시는 다음과 같다.

function fn_egov_network_check(doCheck)
{
    console.log('DeviceAPIGuide fn_egov_network_check');
    var networkState = navigator.network.connection.type;
    ...
}

디버깅 코드가 실행 되면 아래와 같은 메시지를 개발도구의 콘솔 메시지 창에서 볼 수 있다.

filereadwriteconsolelog.png

Barcodescanner API 가이드 프로그램 에서는 디버깅을 콘솔 정보를 출력한다.

배포

Barcodescanner API 가이드 다운로드 : Click 새 창 열림

참고자료

  • Cordova 플러그인 정보 : cordova plugin add cordova-plugin-barcodescannerClick 새 창 열림
원본 페이지 ID
egovframework:hyb3.6:guide:add:barcodescanner
원본 수정일