목차

디바이스 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)

설정

{Project_Name}/Supporting Files/config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
 
 http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->
<widget xmlns     = "http://www.w3.org/ns/widgets"
    id        = "kr.go.egovframe.hyb.DeviceAPIGuide.iOS"
    version   = "2.7.0">
    <name>DeviceInfoAPIGuide</name>
 
    <description>
        DeviceAPIGuide_iOS_V2.7
    </description>
 
    <author href="http://www.egovframe.go.kr" email="egovframesupport@gmail.com">
        eGovFramework
    </author>
 
    <access origin="*"/>
 
    <!-- <content src="http://mysite.com/myapp.html" /> for external pages -->
    <content src="index.html" />
 
    <!-- Preferences for iOS -->
    <preference name="AllowInlineMediaPlayback" value="false" />
    <preference name="AutoHideSplashScreen" value="true" />
    <preference name="BackupWebStorage" value="cloud" />
    <preference name="DisallowOverscroll" value="false" />
    <preference name="EnableLocation" value="false" /><!-- DEPRECATED -->
    <preference name="EnableViewportScale" value="false" />
    <preference name="FadeSplashScreen" value="true" />
    <preference name="FadeSplashScreenDuration" value=".25" />
    <preference name="HideKeyboardFormAccessoryBar" value="false" />
    <preference name="KeyboardDisplayRequiresUserAction" value="true" />
    <preference name="KeyboardShrinksView" value="false" />
    <preference name="MediaPlaybackRequiresUserAction" value="false" />
    <preference name="ShowSplashScreenSpinner" value="true" />
    <preference name="SuppressesIncrementalRendering" value="false" />
    <preference name="TopActivityIndicator" value="gray" />
 
 
    <feature name="Geolocation">
      <param name="ios-package" value="CDVLocation"/>
    </feature>
    <feature name="Device">
      <param name="ios-package" value="CDVDevice"/>
    </feature>
    <feature name="Accelerometer">
      <param name="ios-package" value="CDVAccelerometer"/>
    </feature>
    <feature name="Compass">
      <param name="ios-package" value="CDVLocation"/>
    </feature>
    <feature name="Media">
      <param name="ios-package" value="CDVSound"/>
    </feature>
    <feature name="Camera">
      <param name="ios-package" value="CDVCamera"/>
    </feature>
    <feature name="Contacts">
      <param name="ios-package" value="CDVContacts"/>
    </feature>
    <feature name="File">
      <param name="ios-package"  value="CDVFile"/>
    </feature>
    <feature name="NetworkStatus">
      <param name="ios-package" value="CDVConnection"/>
    </feature>
    <feature name="Notification">
      <param name="ios-package" value="CDVNotification"/>
    </feature>
    <feature name="FileTransfer">
      <param name="ios-package" value="CDVFileTransfer"/>
    </feature>
    <feature name="Capture">
      <param name="ios-package" value="CDVCapture"/>
    </feature>
    <feature name="Battery">
      <param name="ios-package" value="CDVBattery"/>
    </feature>
    <feature name="SplashScreen">
      <param name="ios-package" value="CDVSplashScreen"/>
    </feature>
    <feature name="Echo">
      <param name="ios-package" value="CDVEcho"/>
    </feature>
    <feature name="Globalization">
      <param name="ios-package" value="CDVGlobalization"/>
    </feature>
    <feature name="InAppBrowser">
      <param name="ios-package" value="CDVInAppBrowser"/>
    </feature>
    <feature name="Logger">
      <param name="ios-package" value="CDVLogger"/>
    </feature>
    <feature name="LocalStorage">
        <param name="ios-package" value="CDVLocalStorage"/>
    </feature>
 
    <!-- eGovframe DeviceAPI Plug-In-->
    <feature name="StorageInfoAPI">
        <param name="ios-package" value="EgovStorageInfo"/>
    </feature>
    <feature name="InterfaceAPI">
        <param name="ios-package" value="EgovInterface"/>
    </feature>
    <!-- Deprecated plugins element. REmove in 3.0 -->
    <plugins>
    </plugins>
</widget>
{Project_Name}/eGovModule/eGovComModule.h
    //전자정부 모바일 디바이스 API 연동 웹 어플리케이션 접속 URL
    #define kSERVER_URL     @"http://000.000.000.000:0080/SERVER_URL"
자원요소 - 프로젝트명-info.plist
화면 UI 구성 파일
AppDelegat

웹 서버 어플리케이션 설정

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