목차

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

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

설정

res/xml/config.xml
<?xml version='1.0' encoding='utf-8'?>
<widget xmlns:cdv="http://cordova.apache.org/ns/1.0"
    id="kr.go.egovframe.hyb"
    version="0.0.1"
    xmlns="http://www.w3.org/ns/widgets" >
 
    <preference name="loglevel" value="DEBUG" />
 
    <name>DEVICEAPI</name>
 
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
 
    <author email="dev@cordova.apache.org" href="http://cordova.io" >
        Apache Cordova Team
    </author>
 
    <content src="../wwwSocketIO/intro.html" />
 
    <access origin="*" />
 
    <feature name="Device" >
        <param
            name="android-package"
            value="org.apache.cordova.device.Device" />
    </feature>
    <feature name="NetworkStatus" >
        <param
            name="android-package"
            value="org.apache.cordova.networkinformation.NetworkManager" />
    </feature>
    <feature name="Battery" >
        <param
            name="android-package"
            value="org.apache.cordova.batterystatus.BatteryListener" />
    </feature>
    <feature name="Accelerometer" >
        <param
            name="android-package"
            value="org.apache.cordova.devicemotion.AccelListener" />
    </feature>
    <feature name="Compass" >
        <param
            name="android-package"
            value="org.apache.cordova.deviceorientation.CompassListener" />
    </feature>
    <feature name="Camera" >
        <param
            name="android-package"
            value="org.apache.cordova.camera.CameraLauncher" />
    </feature>
    <feature name="File" >
        <param
            name="android-package"
            value="org.apache.cordova.file.FileUtils" />
        <param
            name="onload"
            value="true" />
    </feature>
    <feature name="Capture" >
        <param
            name="android-package"
            value="org.apache.cordova.mediacapture.Capture" />
    </feature>
    <feature name="Media" >
        <param
            name="android-package"
            value="org.apache.cordova.media.AudioHandler" />
    </feature>
    <feature name="FileTransfer" >
        <param
            name="android-package"
            value="org.apache.cordova.filetransfer.FileTransfer" />
    </feature>
    <feature name="Notification" >
        <param
            name="android-package"
            value="org.apache.cordova.dialogs.Notification" />
    </feature>
    <feature name="Vibration" >
        <param
            name="android-package"
            value="org.apache.cordova.vibration.Vibration" />
    </feature>
    <feature name="Contacts" >
        <param
            name="android-package"
            value="org.apache.cordova.contacts.ContactManager" />
    </feature>
    <feature name="Globalization" >
        <param
            name="android-package"
            value="org.apache.cordova.globalization.Globalization" />
    </feature>
    <feature name="SplashScreen" >
        <param
            name="android-package"
            value="org.apache.cordova.splashscreen.SplashScreen" />
        <param
            name="onload"
            value="false" />
    </feature>
    <feature name="InAppBrowser" >
        <param
            name="android-package"
            value="org.apache.cordova.inappbrowser.InAppBrowser" />
    </feature>
    <feature name="Geolocation" >
        <param
            name="android-package"
            value="org.apache.cordova.geolocation.Geolocation" />
    </feature>
    <feature name="Whitelist" >
        <param
            name="android-package"
            value="org.apache.cordova.whitelist.WhitelistPlugin" />
        <param
            name="onload"
            value="true" />
    </feature>
 
    <!-- eGovframe DeviceAPI Plug-In -->
    <feature name="EgovInterfacePlugin" >
        <param
            name="android-package"
            value="kr.go.egovframework.hyb.plugin.EgovInterfacePlugin" />
    </feature>
    <feature name="StorageInfoPlugin" >
        <param
            name="android-package"
            value="kr.go.egovframework.hyb.plugin.EgovStorageInfo" />
    </feature>
    <feature name="DeviceNumberPlugin" >
        <param
            name="android-package"
            value="kr.go.egovframework.hyb.plugin.EgovDeviceNumber" />
    </feature>
    <feature name="CustomMyPlugin" >
        <param
            name="android-package"
            value="kr.go.egovframework.hyb.plugin.CustomPlugin" />
    </feature>
 
    <feature name="BarcodeScanner">
        <param name="android-package" value="com.phonegap.plugins.barcodescanner.BarcodeScanner" />
    </feature>
 
    <!-- eGovframe DeviceAPI New Plug-In -->
    <feature name="EgovResourceUpdate" >
        <param name="android-package" value="kr.go.egovframework.hyb.plugin.EgovResourceUpdate" />
    </feature>
 
    <!-- eGovframe DeviceAPI New Plug-In-->
    <feature name="EgovResourceUpdate">
        <param name="android-package" value="kr.go.egovframework.hyb.plugin.EgovResourceUpdate" />
    </feature>
    <feature name="EgovFileOpener">
        <param name="android-package" value="kr.go.egovframework.hyb.plugin.EgovFileOpener" />
    </feature>
 
    <feature name="EgovZip">
        <param name="android-package" value="kr.go.egovframework.hyb.plugin.EgovZip" />
    </feature>
 
    <!-- Cordova New Plug-In -->
    <feature name="PushPlugin" >
        <param
            name="android-package"
            value="com.plugin.gcm.PushPlugin" />
    </feature>
 
    <feature name="RootDetection">
        <param name="android-package" value="ru.trykov.root.RootDetection" />
        <param name="onload" value="true" />
    </feature>
 
    <feature name="FileOpener2">
        <param name="android-package" value="io.github.pwlin.cordova.plugins.fileopener2.FileOpener2" />
    </feature>
 
    <feature name="StreamingMedia">
        <param name="android-package" value="com.hutchind.cordova.plugins.streamingmedia.StreamingMedia" />
    </feature>
 
    <feature name="BluetoothLePlugin">
        <param name="android-package" value="com.randdusing.bluetoothle.BluetoothLePlugin" />
    </feature>
 
 
    <feature name="SQLitePlugin">
         <param name="android-package" value="io.sqlc.SQLitePlugin"/>
    </feature>
 
    <!-- Allow links to example.com -->
    <allow-navigation href="http://example.com/*" />
 
    <!--
         Wildcards are allowed for the protocol, as a prefix
	     to the host, or as a suffix to the path
    -->
    <allow-navigation href="*://*.example.com/*" />
 
    <!--
         A wildcard can be used to whitelist the entire network,
	     over HTTP and HTTPS.
	     *NOT RECOMMENDED*
    -->
    <allow-navigation href="*" />
 
    <!-- The above is equivalent to these three declarations -->
    <allow-navigation href="http://*/*" />
    <allow-navigation href="https://*/*" />
    <allow-navigation href="data:*" />
 
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <allow-intent href="itms:*" />
    <allow-intent href="itms-apps:*" />
 
    <preference
        name="SplashScreen"
        value="myimageid" />
    <preference
        name="SplashScreenDelay"
        value="10000" />
    <preference
        name="AllowInlineMediaPlayback"
        value="false" />
    <preference
        name="BackupWebStorage"
        value="cloud" />
    <preference
        name="DisallowOverscroll"
        value="false" />
    <preference
        name="EnableViewportScale"
        value="false" />
    <preference
        name="KeyboardDisplayRequiresUserAction"
        value="true" />
    <preference
        name="MediaPlaybackRequiresUserAction"
        value="false" />
    <preference
        name="SuppressesIncrementalRendering"
        value="false" />
    <preference
        name="SuppressesLongPressGesture"
        value="false" />
    <preference
        name="Suppresses3DTouchGesture"
        value="false" />
    <preference
        name="GapBetweenPages"
        value="0" />
    <preference
        name="PageLength"
        value="0" />
    <preference
        name="PaginationBreakingMode"
        value="page" />
    <preference
        name="PaginationMode"
        value="unpaginated" />
    <preference
        name="CameraUsesGeolocation"
        value="false" />
    <preference
        name="AndroidPersistentFileLocation"
        value="Compatibility" />
 
</widget>
AndroidManifest.xml
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.RECORD_VIDEO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-feature android:name="android.hardware.camera" android:required="false" />
 
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <permission android:name="kr.go.egovframework.hyb.example.permission.C2D_MESSAGE" android:protectionLevel="signature" />
    <uses-permission android:name="kr.go.egovframework.hyb.example.permission.C2D_MESSAGE" />

하이브리드 어플리케이션 설정(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” 변수에 “라이브러리가 설치된 디렉토리”를 추가한다.

참고자료