디바이스 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. 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
- 어플리케이션의 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>
| 구분 | 설정방법 |
|---|---|
| Class 경로 설정 | 방법 1. java 옵션 이용 : java -classpath jar_directory\libgpkiapi_jni.jar 방법 2. 환경 변수 등록 : “내컴퓨터→속성→고급→환경변수” 에서 새로 만들기를 클릭하여 classpath 변수를 등록 |
| 라이브러리 경로 설정 | 1. JNI를 비롯한 C/C++용 표준보안API와 LDAP 라이브러리가 위치해 있는 경로를 환경 변수에 등록한다. 2. “내컴퓨터→속성→고급→환경변수” 에서 기존 “path” 변수에 “라이브러리가 설치된 디렉토리”를 추가한다. |
참고자료
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 새 창 열림


