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

모바일 디바이스 API 2.5

디바이스 API 가이드 프로그램 환경설정

디바이스 API 가이드 프로그램 환경설정

하이브리드 어플리케이션 설정(Android)

설정

res/xml/config.xml
  • 폰갭 어플리케이션의 설정 정보들을 등록해주는 파일이다.
  • 폰갭에서는 각 Device API 들을 Plug-in 형태로 제공하며 해당 Device API Plug-in 들을 plugins 타입 아래에 명시 해 주어야 한다.
  • 전자정부용 웹 서버 어플리케이션과 인터페이스를 하기위해서는 EgovInterfacePlugin 을 추가 해 주어야 한다.
<widget xmlns     = "http://www.w3.org/ns/widgets"
        id        = "io.cordova.helloCordova"
        version   = "2.0.0">
    <name>Hello Cordova</name>
 
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
 
    <author href="http://cordova.io" email="dev@cordova.apache.org">
        Apache Cordova Team
    </author>
 
    <access origin="*"/>
 
    <!-- <content src="http://mysite.com/myapp.html" /> for external pages -->
    <content src="index.html" />
 
    <preference name="loglevel" value="DEBUG" />
    <!--
      <preference name="splashscreen" value="resourceName" />
      <preference name="backgroundColor" value="0xFFF" />
      <preference name="loadUrlTimeoutValue" value="20000" />
      <preference name="InAppBrowserStorageEnabled" value="true" />
      <preference name="disallowOverscroll" value="true" />
    -->
 
    <feature name="App">
      <param name="android-package" value="org.apache.cordova.App"/>
    </feature>
    <feature name="Geolocation">
      <param name="android-package" value="org.apache.cordova.GeoBroker"/>
    </feature>
    <feature name="Device">
      <param name="android-package" value="org.apache.cordova.Device"/>
    </feature>
    <feature name="Accelerometer">
      <param name="android-package" value="org.apache.cordova.AccelListener"/>
    </feature>
    <feature name="Compass">
      <param name="android-package" value="org.apache.cordova.CompassListener"/>
    </feature>
    <feature name="Media">
      <param name="android-package" value="org.apache.cordova.AudioHandler"/>
    </feature>
    <feature name="Camera">
      <param name="android-package" value="org.apache.cordova.CameraLauncher"/>
    </feature>
    <feature name="Contacts">
      <param name="android-package" value="org.apache.cordova.ContactManager"/>
    </feature>
    <feature name="File">
      <param name="android-package" value="org.apache.cordova.FileUtils"/>
    </feature>
    <feature name="NetworkStatus">
      <param name="android-package" value="org.apache.cordova.NetworkManager"/>
    </feature>
    <feature name="Notification">
      <param name="android-package" value="org.apache.cordova.Notification"/>
    </feature>
    <feature name="Storage">
      <param name="android-package" value="org.apache.cordova.Storage"/>
    </feature>
    <feature name="FileTransfer">
      <param name="android-package" value="org.apache.cordova.FileTransfer"/>
    </feature>
    <feature name="Capture">
      <param name="android-package" value="org.apache.cordova.Capture"/>
    </feature>
    <feature name="Battery">
      <param name="android-package" value="org.apache.cordova.BatteryListener"/>
    </feature>
    <feature name="SplashScreen">
      <param name="android-package" value="org.apache.cordova.SplashScreen"/>
    </feature>
    <feature name="Echo">
      <param name="android-package" value="org.apache.cordova.Echo"/>
    </feature>
    <feature name="Globalization">
      <param name="android-package" value="org.apache.cordova.Globalization"/>
    </feature>
    <feature name="InAppBrowser">
      <param name="android-package" value="org.apache.cordova.InAppBrowser"/>
    </feature>
    <!-- Deprecated plugins element. Remove in 3.0 -->
    <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"/>
    	<plugin name="EgovInterfacePlugin" value="kr.go.egovframework.hyb.plugin.EgovInterfacePlugin" />
		<plugin name="StorageInfoPlugin" value="kr.go.egovframework.hyb.plugin.EgovStorageInfo" />
		<plugin name="DeviceNumberPlugin" value="kr.go.egovframework.hyb.plugin.EgovDeviceNumber" />        
    </plugins>
</widget>
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</string>
</resources>
AndroidManifest.xml
  • 모바일 디바이스 API 가이드 프로그램에서 디바이스 API를 사용 할 때의 모바일기기로의 접근 권한을 지정 한다.
<uses-permission android:name="android.permission.CAMERA" />
<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" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

하이브리드 어플리케이션 설정(iOS)

디렉토리 추가 및 설정 파일 추가

프로젝트 생성

1. New Project의 Application에서 Cordova-based Application을 선택하여 프로젝트를 생성한다.
xcodephonegapproject.png

설정 파일 추가

1. Project를 선택하고, TARGETS를 선택 후 하단의 Linked Frameworks and Libraries의 하단 +(플러스) 버튼을 눌러 Security.framework, CFNetwork.framework, MobileCoreServices.framework, libz.dylib 프레임워크 및 라이브러리를 추가한다.
xcode프레임워크추가.png

2. 전자정부 표준프레임워크에서 다운로드 받은 Xcode용 PhoneGap Plugins인 EgovInterface.zip을 원하는 곳에 압축 푼 후 4개의 파일 EgovStorageInfo.h, EgovStorageInfo.m, EgovInterface.h, EgovInterface.m 파일을 프로젝트의 Plugins 폴더로 Drage&Drop을 한다.
xcodeplugins파일.png

3. 아래 스크린샷처럼 옵션을 선택하고 Finish를 선택한다.
xcode파일추가.png

4. 전자정부 표준프레임워크에서 다운로드 받은 Xcode용 정적라이브러리 eGovModule.zip을 원하는 곳에 압축을 푼 후 해당 폴더를 프로젝트 메인 폴더에 Drag&Drop을 한다.
xcode정적라이브러리추가.png

5. 아래 스크린샷처럼 옵션을 선택하고 Finish를 선택한다.
xcode파일추가.png

6. Supporting Files 폴더에 있는 Cordova.plist 파일을 선택 후, Plugins에 InterfaceAPI, StorageInfoAPI를 추가한 후 String 값으로 EgovInterface, EgovStorageInfo로 입력한다.
xcode폰갭환경설정.png

설정

자원요소 - 프로젝트명-info.plist
  • 어플리케이션의 Bundle Identifier 이름을 지정한다. 이 Identifier 이름은 어플리케이션의 고유한 식별자로써 해당 어플리케이션을 다른 어플리케이션과 구분해주는 역할을 한다.
  • 어플리케이션의 Localization native development region을 설정한다. 어플리케이션의 지역 정보를 설정하여 해당 어플리케이션에서 사용되는 언어 정보를 등록 할 수 있다.
  • 어플리케이션의 Bundle display name 이름을 지정한다. 설치된 어플리케이션의 디스플레이 되는 이름을 설정하는데 사용된다.
  • 어플리케이션의 icon파일 이름을 지정한다. 설치된 어플리케이션의 디스플레이 되는 이미지 파일을 설정하며 픽셀 크기별로 여러 파일의 등록이 가능하다.
  • 어플리케이션의 Bundle version을 지정한다. 해당 어플리케이션의 버전을 명시하며 어플리케이션이 업데이트 대상인지 구분하는데 사용된다.
  • 어플리케이션의 Main nib file base name을 지정한다. 어플리케이션의 화면 UI 구성 파일인 xib 파일을 설정하는데 사용된다. iPhone용과 iPad용을 별도로 등록한다.
  • 어플리케이션의 supported interface orientations를 지정한다. 어플리케이션에서 지원할 수 있는 방향 전환을 설정하는데 사용되며 iPhone용과 iPad용을 별도로 등록한다.
화면 UI 구성 파일
  • 보통 iOS 어플리케이션에서는 xib 파일들은 화면 UI를 구성하는 파일들이다.
  • 일반적인 iOS 어플리케이션의 메인 UI는 MainWindow.xib 파일로 설정하며 변경이 가능하다.
  • 폰갭 어플리케이션의 기본 설정은 HTML을 랜더링하는 웹뷰를 전체화면에서 구성하도록 되어 있으며, 별도의 xib파일을 상요하지 않는다.
AppDelegat
  • 최초 어플리케이션이 로딩 될 때 main함수에서 호출되는 클래스로 어플리케이션의 시작점이 된다. 하이브리드 어플리케이션에서는 PhoneGapeDelegate를 상속받아 www폴더의 리소스를 웹뷰에 연결 시켜주는 역할을 수행한다.
Cordova.plist
  • 폰갭 어플리케이션의 설정 정보들을 등록해주는 파일이다.
  • 폰갭에서도 각 Device API 들을 Plug-in 형태로 제공하며 해당 Device API Plug-in 들을 plugins 타입 아래에 명시 해 주어야 한다.
  • 폰갭에서 사용되는 HTML 리소스가 외부 서버에 위치 했을 때 외부 리소스가 위치하는 호스트 정보를 ExternalHosts정보에 등록 해야 정상적으로 폰갭 어플리케이션이 동작한다.

웹 서버 어플리케이션 설정

web.xml 및 context-egovuserdetailshelper.xml의 설정

Data Source 설정

표준 보안 API

pom.xml
<dependency>
	<groupId>egovframework.com.cmm.uat</groupId>
	<artifactId>libgpkiapi_jni</artifactId>
	<version>1.4.0.0</version>
</dependency>
pom.xml
구분설정방법
Class 경로 설정방법 1. java 옵션 이용 : java -classpath jar_directory\libgpkiapi_jni.jar
방법 2. 환경 변수 등록 : “내컴퓨터→속성→고급→환경변수” 에서 새로 만들기를 클릭하여 classpath 변수를 등록
라이브러리 경로 설정1. JNI를 비롯한 C/C++용 표준보안API와 LDAP 라이브러리가 위치해 있는 경로를 환경 변수에 등록한다.
2. “내컴퓨터→속성→고급→환경변수” 에서 기존 “path” 변수에 “라이브러리가 설치된 디렉토리”를 추가한다.

npkiclasspath.jpg | npkipath.jpg

참고자료

원본 페이지 ID
egovframework:hyb:guide:디바이스_api_가이드_프로그램_환경설정
원본 수정일