목차

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

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

설정

res/xml/config.xml
<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
<?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
<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을 선택하여 프로젝트를 생성한다.

설정 파일 추가

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

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

3. 아래 스크린샷처럼 옵션을 선택하고 Finish를 선택한다.

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

5. 아래 스크린샷처럼 옵션을 선택하고 Finish를 선택한다.

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

설정

자원요소 - 프로젝트명-info.plist
화면 UI 구성 파일
AppDelegat
Cordova.plist

웹 서버 어플리케이션 설정

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

참조 https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v2:init_configration

Data Source 설정

참조 https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:data_source

표준 보안 API

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

npkiclasspath.jpg | npkipath.jpg

참고자료

PhoneGap 2.9.0 Download : http://phonegap.com/download
Apple Developer Library : https://developer.apple.com/library/ios/navigation/
표준보안API : http://www.gpki.go.kr