목차

개요

전자정부 표준프레임워크 디바이스 API 실행환경 예제는 사용자가 개발도구를 이용하여 프로젝트를 생성 시 선택적으로 설치 할 수 있는 샘플 어플리케이션으로 폰갭의 디바이스API 기능을 실행 시켜 볼 수 있는 예제로 구성되어 있다.

기능 흐름도

기능 시퀀스

전제 조건

구분 내용
Local 디바이스 개발 환경전자정부표준프레임워크 개발환경2.6, Android SDK Revision 18(적용빌드번호 : GINGERBREAD EL21)
Xcode 4.4.1, PhoneGap 2.9.0
서버 사이드 개발 환경N/A
Mash up Open API 연계N/A
테스트 디바이스 갤럭시S2, iPhone4
테스트 플랫폼 Android 2.2, iOS 5.1
추가 라이브러리 적용N/A

제약사항

설명

전자정부 표준프레임워크 디바이스 API 실행환경 예제는 디바이스 API 실행환경을 활용하여 하이브리드 앱을 개발 하시는 분들이 구현시에 참고 및 활용 도리 수 있도록 핵심 디바이스 API 10개에 대한 샘플 예제들로 구성되어 있다.

관련 소스

유형대상소스명비고
CSSwww/css/egovframwork/mbl/hyb/SampleTemplate.css 실행환경 예제 주요 Cascading Style Sheets
IMAGE www/images/egovframwork/mbl/hyb/ 실행환경 예제 주요 Image 폴더
JS www/js/egovframwork/mbl/hyb/SampleTemplate.js 실행환경 예제 주요 JavaScript
HTMLwww/SampleTemplate.htmlSampleTemplate 메인 페이지
HTMLwww/license.htmlSampleTemplate 라이센스 페이지
HTMLwww/overview.htmlSampleTemplate 기능설명 페이지

활용 API

Accelerator API

accelerometer.getCurrentAcceleration
navigator.accelerometer.getCurrentAcceleration(accelerometerSuccess, accelerometerError);
function onSuccess(acceleration) {
    alert('Acceleration X: ' + acceleration.x + '\n' +
          'Acceleration Y: ' + acceleration.y + '\n' +
          'Acceleration Z: ' + acceleration.z + '\n' +
          'Timestamp: '      + acceleration.timestamp + '\n');
};
acceleratorOption
Option설명비고
frequency 가속도 정보를 조회하는 빈도를 의미한다.

GPS API

navigator.geolocation.getCurrentPosition
navigator.geolocation.getCurrentPosition
navigator.geolocation.getCurrentPosition(successCallback, failCallback);
Option설명비고
successCallback성공시 리턴되는 함수
failCallback실패시 리턴되는 함수

Vibrator API

notification.beep
navigator.notification.beep(times);
notification.vibrate
navigator.notification.vibrate(milliseconds);

Camera API

camera.getPicture
navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] );
cameraOption
var cameraOption = {};
  cameraOption  = {
      quality: 50,
      destinationType : Camera.DestinationType.FILE_URI,
      sourceType : Camera.PictureSourceType.CAMERA,
      targetWidth: 200,
      targetHeight: 200
  };
Option설명비고
quality이미지의 품질(해상도)를 백분율로 정의한다.
destinationType결과 값의 포맷을 정의한다.navigator.camera.DestinationType
sourceType포토 라이브러리, 카메라에서 찍은 사진 등 선택할 소스를 설정한다.nagivator.camera.PictureSourceType
allowEdit이미지 선택 전, 이미지 편집 여부.
encodingType이미지 파일의 인코딩 종류를 정의한다.navigator.camera.EncodingType
targetWidth이미지의 너비(pixel)를 설정한다. 비율은 고정.
targetHeight이미지의 높이(pixel)를 설정한다. 비율은 고정.
mediaTypepictureSourceType이 PHOTOLIBRARY 또는 SAVEDPHOTOALBUM일 때, 미디어의 타입을 설정한다. nagivator.camera.MediaType
correctOrientation 이미지를 담는동안 이미지 회전 여부.
saveToPhotoAlbum 이미지를 담은 후, 단말기 저장 여부.

Media API

Media
var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]);
media.getCurrentPosition
media.getCurrentPosition(mediaSuccess, [mediaError]);
media.getDuration
media.getDuration();
media.pause
media.pause();
media.play
media.play();
media.release
media.release();
mediaError
에러코드설명비고
MEDIA_ERR_ABORTED사용자에 의해 중단된 비디오 재생
MEDIA_ERR_NETWORK네트워크 에러
MEDIA_ERR_DECODE디코딩 에러(코덱문제)
MEDIA_ERR_SRC_NOT_SUPPORTED지원하지 않는 형식의 오디오

Contacts API

contacts.create
var myContact = navigator.contacts.create({"displayName": "Test User"});
contacts.find
navigator.contacts.find(contactFields, contactSuccess, contactError, contactFindOptions);
var options = new ContactFindOptions();
options.filter="Bob"; 
var fields = ["displayName", "name"];
navigator.contacts.find(fields, onSuccess, onError, options);
// create a new contact object
var contact = navigator.contacts.create();
contact.displayName = "Plumber";    // not support iOS
contact.nickname = "Plumber";       //specify both to support all devices

// populate some fields
var name = new ContactName();
name.givenName = "Jane";
name.familyName = "Doe";
contact.name = name;

// save to device
contact.save(onSuccess,onError);
var clone = contact.clone();
clone.name.givenName = "John";
console.log("Original contact name = " + contact.name.givenName);
console.log("Cloned contact name = " + clone.name.givenName);
function onSuccess() {
    alert("Removal Success");
};

function onError(contactError) {
    alert("Error = " + contactError.code);
};

// remove the contact from the device
contact.remove(onSuccess,onError);

- contactFields

Properties객체구조비고
IDstring글로벌 고유 식별자. (DOMString)
displayName(DOMString)최종 사용자에게 표시하기에 적합이 연락처의 이름.
name(ContactName)명 이름의 모든 구성 요소를 포함하는 개체입니다.
nickname(DOMString)연락을하여 해결할 수있는 캐주얼 이름.
phoneNumbers(ContactField [])모든 연락처의 전화 번호의 배열입니다.
email(ContactField [])모든 연락처의 이메일 주소의 배열입니다.
addresses(ContactAddress [])연락처의 주소를 모든 배열입니다.
ims(ContactField [])모든 연락처의 IM 주소의 배열입니다.
organizations(ContactOrganization [])연락처의 조직 전체의 배열입니다.
birthdayDate연락처의 생일. (일)
note(DOMString)연락처에 대한 참고 사항.
photo(ContactField [])연락처의 사진의 배열입니다.
categories(ContactField [])사용자 정의 범주의 모든 연락처의 배열입니다.
urls(ContactField [])연락처에 관련된 웹 페이지의 배열입니다.

- ContactName

Properties객체구조비고
formatted(DOMString)연락처의 전체 이름
familyName(DOMString)
givenName(DOMString)
middleName(DOMString)
honorificPrefix(DOMString)연락처 접두사
honorificSuffix(DOMString)연락처 접미사

- ContactField

Properties객체구조비고
type(DOMString)필드의 종류를 구분할수 있는 문자열
value(DOMString)필드의 값
pref(Boolean)선호 가치 표시

- ContactAddress

Properties객체구조비고
pref(boolean)ContactAddress 객체의 대표 값 여부
type(DOMString)필드 유형을 정의한다
formatted(DOMString)출력을 위한 전체 주소
streetAddress(DOMString)동 / 읍 / 면 / 가 와 같은 전체 주소
locality(DOMString)’시’ / ‘도’ 표기
region(DOMString)’주’ / ‘지방’ 표기
postalCode(DOMString)우편번호
country(DOMString)국번

- ContactOrganization

Properties객체구조비고
pref(Boolean)ContactOrganization 객체의 대표 값 여부
type(DOMString)필드 유형을 정의한다(예: ‘work’ 은 직장.)
name(DOMString)소속의 이름을 정의한다
department(DOMString)소속 부서를 정의한다
title(DOMString)소속 내의 직함을 정의한다

- ContactFindOption

Properties객체구조비고
filter(DOMString)검색어 또는 검색조건을 정의한다. (Default: ””)
multiple(Boolean)검색 결과으로 다수의 연락처를 가져올 것인지의 여부

- ContactError

Properties객체구조비고
ContactError.UNKNOWN_ERROR(DOMString)알수 없는 에러
ContactError.INVALID_ARGUMENT_ERROR(DOMString)잘못된 인자값
ContactError.TIMEOUT_ERROR(DOMString)응답시간 지연
ContactError.PENDING_OPERATION_ERROR(DOMString)잘못된 명령
ContactError.IO_ERROR(DOMString)입출력 에러
ContactError.NOT_SUPPORTED_ERROR(DOMString)지원하지 않음
ContactError.PERMISSION_DENIED_ERROR(DOMString)권한 에러

Compass API

compass.watchHeading
navigator.compass.getCurrentHeading(compassSuccess, compassError, compassOptions);
function onSuccess(heading) {
    alert('Heading: ' + heading.magneticHeading);
};

function onError(error) {
    alert('CompassError: ' + error.code);
};

navigator.compass.getCurrentHeading(onSuccess, onError);
compassOption
Option설명비고
frequency 나침반 정보를 조회하는 빈도를 의미한다.
frequency 나침반 성공 콜백함수를 초기화 하는데 필요한 변화의 정도를 의미한다.

FileReaderWriter API

LocalFileSystem
	window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);
파라미터설명비고
LocalFileSystem.PERSISTENT사용자 또는 어플리케이션에 의해 제거 될 수 없는 스토리지를 조회 할 때 사용된다.
onSuccess, 파일 시스템 조회에 성공했을때 호출되는 콜백 함수
onError파일 시스템 조회에 실패 했을때 호출되는 콜백 함수

NetworkInfo API

navigator.connection.type
var states = {};
states[Connection.UNKNOWN]  = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI]     = 'WiFi connection';
states[Connection.CELL_2G]  = 'Cell 3G connection';
states[Connection.CELL_3G]  = 'Cell 3G connection';
states[Connection.CELL_4G]  = 'Cell 4G connection';
states[Connection.NONE]     = 'No network connection';

var NowNetwork = states[navigator.connection.type];
Return State(code)NetworkInfo(string)
Connection.UNKNOWNUnknown connection
Connection.ETHERNETEthernet connection
Connection.WIFIWiFi connection
Connection.CELL_2GCell 2G connection
Connection.CELL_3GCell 3G connection
Connection.CELL_4GCell 4G connection
Connection.NONENo network connection

DeviceInfo API

device
	var name = device.name;
	var cordova= device.cordova;
	var platform = device.platform;
	var uuid = device.uuid;
	var version = device.version;
변수설명비고
name디바이스에 셋팅된 명칭을 반환한다.
cordova어플리케이션에서 사용된 폰갭 버전을 반환한다.
platform모바일 디바이스의 플랫폼 정보를 반환한다.
uuid디바이스 고유의 UUID를 반환한다.
version디바이스의 플랫폼 버전을 반환한다.

환경설정

실행환경 예제 프로그램에서 제공하는 디바이스 API 기능을 활용하기 위하여 필요한 항목 및 그 환경 설정은 다음과 같다.

Device Application

Android

<plugins>
    <plugin name="App" value="org.apache.cordova.App"/>
    <plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/>
    <plugin name="Device" value="org.apache.cordova.Device"/>
    <plugin name="Accelerometer" value="org.apache.cordova.AccelListener"/>
    <plugin name="Compass" value="org.apache.cordova.CompassListener"/>
    <plugin name="Media" value="org.apache.cordova.AudioHandler"/>
    <plugin name="Camera" value="org.apache.cordova.CameraLauncher"/>
    <plugin name="Contacts" value="org.apache.cordova.ContactManager"/>
    <plugin name="File" value="org.apache.cordova.FileUtils"/>
    <plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/>
    <plugin name="Notification" value="org.apache.cordova.Notification"/>
    <plugin name="Storage" value="org.apache.cordova.Storage"/>
    <plugin name="Temperature" value="org.apache.cordova.TempListener"/>
    <plugin name="FileTransfer" value="org.apache.cordova.FileTransfer"/>
    <plugin name="Capture" value="org.apache.cordova.Capture"/>
    <plugin name="Battery" value="org.apache.cordova.BatteryListener"/>
    <plugin name="SplashScreen" value="org.apache.cordova.SplashScreen"/>
</plugins>
<supports-screens 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:resizeable="true" 
    android:anyDensity="true" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />

iOS

 
<dict>
	<key>Logger</key>
	<string>CDVLogger</string>
	<key>Compass</key>
	<string>CDVLocation</string>
	<key>Accelerometer</key>
	<string>CDVAccelerometer</string>
	<key>Camera</key>
	<string>CDVCamera</string>
	<key>NetworkStatus</key>
	<string>CDVConnection</string>
	<key>Contacts</key>
	<string>CDVContacts</string>
	<key>Debug Console</key>
	<string>CDVDebugConsole</string>
	<key>File</key>
	<string>CDVFile</string>
	<key>FileTransfer</key>
	<string>CDVFileTransfer</string>
	<key>Geolocation</key>
	<string>CDVLocation</string>
	<key>Notification</key>
	<string>CDVNotification</string>
	<key>Media</key>
	<string>CDVSound</string>
	<key>Capture</key>
	<string>CDVCapture</string>
	<key>SplashScreen</key>
	<string>CDVSplashScreen</string>
	<key>Battery</key>
	<string>CDVBattery</string>
	<key>InterfaceAPI</key>
	<string>EgovInterface</string>
	<key>StorageInfoAPI</key>
	<string>EgovStorageInfo</string>
</dict>

관련기능

실행환경 예제 프로그램은 디바이스 API 기능을 직관적으로 알 수 있도록 간단한 예제의 집합으로 구성되어 있다.

가속도 정보 조회

비즈니스 규칙

관련 코드

주기적 Accelerator 정보 조회
function fn_egov_update_Acceleration(accelInfo) 
{
    var html = "<span>X : " + accelInfo.x + "<BR />" + "Y : " +  accelInfo.y + "<BR />" + "Z : "  + accelInfo.z+"</span>";
	$("#infoDetail").html(html);
    
    if(accelInsertCheck)
    {
        if(accelInfo.x === 0 && accelInfo.y === 0 && accelInfo.z === 0)
        {
            
        }
        else
        {
            fn_egov_insert_table("ACCELERATOR",accelInfo);
            fn_egov_display_deviceAPIInfoMain("ACCELERATOR",html);
            
            accelInsertCheck = false;
        }
    }
}

Accelerator 장치 가동 및 업데이트 타이머 설정
function fn_egov_get_acceleration() 
{
    if (accelerationWatch === null) 
    {
        //navigator.notification.alert("acceleration start");
        toast("acceleration start");

        var options = {};
        options.frequency = 1000;
        accelInsertCheck = true;
        accelerationWatch = navigator.accelerometer.watchAcceleration(fn_egov_update_Acceleration, 
                                                                      function(ex) 
                                                                      {
                                                                          console.log("DeviceAPIGuide fn_egov_get_acceleration fail (" + ex.name + ": " + ex.message + ")");
                                                                      },
                                                                      options);
    }
    else 
    {
        //navigator.notification.alert("acceleration stop");
        toast("acceleration stop");
        navigator.accelerometer.clearWatch(accelerationWatch);
        accelerationWatch = null;
    }
};


관련 화면 및 수행매뉴얼

  1. 가속도 정보 조회

GPS 정보 조회

관련 코드

GPS 정보 수신
function fn_egov_get_location() 
{
    var suc = function(p) 
    {
        var html = "<span>위도 : " + p.coords.latitude + "<BR />" + "경도 : " + p.coords.longitude + "<BR />" + fn_egov_get_nowTime()+"</span>";
        fn_egov_display_deviceAPIInfoMain("GPS",html);
        fn_egov_insert_table("GPS",p);
    };
    var locFail = function()
    {
        jAlert("위치 정보를 얻을 수 없습니다.", "알림", "b");
    };
    
    navigator.geolocation.getCurrentPosition(suc, locFail);
};

관련 화면 및 수행매뉴얼

  1. 디바이스의 위도, 경도 정보 조회

진동 알림

관련 코드

디바이스 진동 알림
function fn_egov_get_vibrate() 
{
    var html = "<span><img src='images/egovframework/mbl/hyb/ico_vibration.png' ></span><BR />" + fn_egov_get_nowTime();
    fn_egov_display_deviceAPIInfoMain("VIBRATE",html);
    fn_egov_insert_table("VIBRATOR","");
    //document.getElementById('showResult').value = str;
    navigator.notification.vibrate(2000);
};

관련 화면 및 수행매뉴얼

  1. 디바이스 진동 기능 호출

카메라 촬영

관련 코드

디바이스 카메라 호출
function fn_egov_capture_photo()
{
    navigator.camera.getPicture(fn_egov_upload_photo,null,{sourceType:1,quality:60});
};

사진 촬영 성공 콜백 함수
function fn_egov_upload_photo(data)
{
    console.log("DeviceAPIGuide fn_egov_upload_photo success");
    var html = '<span class="camera"><img src="' + data + '" style="max-width:100%;height:60px;"> </img></span>';
    fn_egov_display_deviceAPIInfoMain("CAMERA",html);
    fn_egov_insert_table("CAMERA",data);
    
    toast("uploadPhoto success!");
};


관련 화면 및 수행매뉴얼

  1. 디바이스의 카메라 호출 사진 촬영

미디어 재생

비즈니스 규칙

관련 코드

미디어 재생
function fn_egov_play_audio() 
{
    if(audioCheck)
    {
        fn_egov_stop_audio();
        audioCheck = false;
        return;
    }
    
    // Create Media object from src
    mediaHandle = new Media("SleepAway.mp3", fn_egov_on_audioSuccess, fn_egov_on_audioError);
    // Play audio
    mediaHandle.play();
    // Update mediaHandle position every second
    if (mediaTimer === null) 
    {
        audioCheck = true;
        fn_egov_insert_table("MEDIA","");
        var html = "<span><img src=\'images/egovframework/mbl/hyb/ico_movie.png\'></span><BR />" + fn_egov_get_nowTime();
        fn_egov_display_deviceAPIInfoMain("MEDIA",html);
        
        mediaTimer = setInterval(function() 
                                 {
                                     // get mediaHandle position
                                     mediaHandle.getCurrentPosition(
                                                                 // success callback
                                                                 function(position) 
                                                                 {
                                                                     if (position > -1) {
                                                                         fn_egov_set_audioPosition((position) + " %");
                                                                     }
                                                                 },
                                                                 // error callback
                                                                 function(e) 
                                                                 {
                                                                     console.log("DeviceAPIGuide fn_egov_play_audio Error "+e.code);
                                                                     fn_egov_set_audioPosition("Error: " + e);
                                                                 });
                                 }, 
                                 1000);
    }
}

미디어 일시중지

function fn_egov_pause_audio() 
{
    if (mediaHandle) 
    {
        mediaHandle.pause();
    }
}


미디어 종료
function fn_egov_stop_audio() 
{
    if (mediaHandle) 
    {
        mediaHandle.stop();
    }
    clearInterval(mediaTimer);
    mediaTimer = null;
}

현재 재생 위치 표시
function fn_egov_set_audioPosition(position) 
{
    var html = "<span><img src=\'images/egovframework/mbl/hyb/ico_movie.png\'></span><BR />Play position : "+position+"<BR />" + fn_egov_get_nowTime();
    $("#infoDetail").html(html);
}


관련 화면 및 수행매뉴얼

  1. 미디어 재생하기
  2. 미디어 재생 중지 하기

연락처 정보 조회

관련 코드

연락처 조회 요청
function fn_egov_get_contacts() 
{
    var obj = new ContactFindOptions();
    obj.filter = "";
    obj.multiple = true;
    navigator.contacts.find(
                            [ "displayName", "name" ], 
                            fn_egov_get_contactsRead,
                            fn_egov_get_contactsFail, 
                            obj);
}

연락처 조회 성공 콜백 함수
function fn_egov_get_contactsRead(contacts) 
{
    console.log("DeviceAPIGuide fn_egov_get_contactsRead Success");
    var html = "<span>검색 된 연락처 총 " + contacts.length + " 개" + "<BR />" + fn_egov_get_nowTime() + "</span>";
    fn_egov_display_deviceAPIInfoMain("CONTACTS",html);

    fn_egov_insert_table("CONTACTS","total contacts : "+contacts.length);
}


관련 화면 및 수행매뉴얼

  1. 디바이스에 저장된 총 연락처 개수 조회

나침반 정보 조회

비즈니스 규칙

관련 코드

나침반 정보 조회
function fn_egov_get_compass() 
{
    if (CompasswatchID === null) 
    {
        fn_egov_display_deviceAPIInfoMain("COMPASS","");
        
        toast("Compass start");
        CompassInsertCheck = true;
        var options = { frequency: 1000 };
        CompasswatchID = navigator.compass.watchHeading(fn_egov_update_heading, 
                                                        function(e) 
                                                        {
                                                            console.log("DeviceAPIGuide fn_egov_get_compass Error "+e.code);
                                                        }, 
                                                        options);
    }
    else 
    {        
        navigator.compass.clearWatch(CompasswatchID);
        CompasswatchID = null;
        fn_egov_update_heading({ magneticHeading : "Off"});
        toast("Compass stop");
    }
}

나침반 정보 조회 성공 콜백 함수
function fn_egov_update_heading(h) 
{
    var html = "방위각 : " + h.magneticHeading + "<BR />" + fn_egov_get_nowTime();
    $("#infoDetail").html(html);
    if(CompassInsertCheck) 
    {
        fn_egov_insert_table("COMPASS",h);
        CompassInsertCheck = false;
    }
}


관련 화면 및 수행매뉴얼

  1. 디바이스의 방위각 정보 조회

디바이스 파일 조회

관련 코드

장치의 File System 정보 조회
function fn_egov_get_localStorageInfo() 
{
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
                             // success get file system
                             function(fs)
                             { 
                                 console.log("DeviceAPIGuide fn_egov_get_localStorageInfo Success");
                                 fileSystem = fs;
                                 dirEntry = fs.root;
                             
                             }, 
                             // error get file system
                             function(evt)
                             {   
                                 console.log("DeviceAPIGuide fn_egov_get_localStorageInfo Error "+evt.target.error.code);
                             });
}

디렉토리 위치 정보 획득

function fn_egov_go_directory(directoryEntry) 
{
    console.log("DeviceAPIGuide fn_egov_go_directory Success");
	dirEntry = directoryEntry;
	fn_egov_read_directory();
}

현재 파일 시스템 내, 위치 정보 획득

function fn_egov_next_chdir(dir) 
{
	if (dir == "../") 
    {
		dirEntry.getParent(fn_egov_go_directory, fn_egov_get_fileError);
	} 
    else if (dir == "root") 
    {
		dirEntry = fileSystem.root;
		fn_egov_read_directory();
	} 
    else 
    {
		dirEntry.getDirectory(dir, {}, fn_egov_go_directory, fn_egov_get_fileError);
	}
}

관련 화면 및 수행매뉴얼

  1. 디바이스의 파일 시스템 조회

네트워크 정보 조회

관련 코드

네트워크 상태 체크
function fn_egov_check_network() 
{
    var networkState = navigator.network.connection.type;
    var states = {};
    states[Connection.UNKNOWN]  = 'Unknown connection';
    states[Connection.ETHERNET] = 'Ethernet connection';
    states[Connection.WIFI]     = 'WiFi connection';
    states[Connection.CELL_2G]  = 'Cell 3G connection';
    states[Connection.CELL_3G]  = 'Cell 3G connection';
    states[Connection.CELL_4G]  = 'Cell 4G connection';
    states[Connection.NONE]     = 'No network connection';
    
    var html = "<span>Network Info : " + states[networkState] + "<BR />" + fn_egov_get_nowTime()+"</span>";
    fn_egov_display_deviceAPIInfoMain("NETWORK",html);
    fn_egov_insert_table("NETWORK", states[networkState]);
}

관련 화면 및 수행매뉴얼

  1. 디바이스의 네트워크 정보 조회

디바이스 메타 정보 조회

관련 코드

디바이스 정보 조회
function fn_egov_get_deviceInfo() 
{
    var html = "NAME : " + device.name + "<BR/>cordovaVersion : " + device.cordova 
               + "<BR/>platform : " + device.platform + "<BR/>uuid : " + device.uuid
               + "<BR/>version : " + device.version + "<BR />" + fn_egov_get_nowTime();

    fn_egov_display_deviceAPIInfoMain("DEVICE",html);
    fn_egov_insert_table("DEVICE",device);
}

관련 화면 및 수행매뉴얼

  1. 디바이스의 메타 정보 조회

사용법

설치 방법

전자정부 표준프레임워크 디바이스 API 실행환경 예제는 개발환경 도구를 통해서 설치가 가능하며 자세한 설치 방법은 다음을 참조 한다.

오류 발생 시 대처 순서

console.log의 작성 방법은 다음과 같다.

 console.log("[DeviceAPI Guide] fn_egov_delete_fileInfo : Completed");

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