02. Configuration Data
preConfiguration.json
preConfiguration.json 에서는 아래와 같은 항목에 대해서 설정을 한다.
- Operation Center 서버 정보 설정
- 암호화 모듈에 대한 선언 및 설정
Table. PreConfiguration Data format
No | Name | Type | Value | Remark | M/O |
---|---|---|---|---|---|
1 | launcherAppId | string | * | Launcher App ID | M |
2 | targetDeviceType | string | Phone | Tablet | All | 대상 단말기 종류 | M |
3 | operations | json | 하단 Operations Data format 테이블 참조 | M | |
4 | encryptionProviders | json | 암호화 Provider 정의 | M | |
5 | keyProviders | json | 키 Provider 정의 | M | |
Table. Operations Data format
No | Name | Type | Value | Remark | M/O |
---|---|---|---|---|---|
1 | baseAddress | string | operation server URL | M | |
2 | port | string | 0~65536 | operation server Port | O |
3 | contextPath | string | operation server context Path | M | |
4 | applicationPath | string | operation server service Path | M | |
5 | contentType | string | application/json | 통신 데이터포맷 | M |
추가적으로 encryptionProviderName 의 값 및 keyProviderName의 값은 아래의 세부 항목을 참조한다.
Table. encryptionProvider Data format
No | Name | Type | Remark | M/O |
---|---|---|---|---|
1 | [EncryptionProvider Name] | string | 정의할 Encryption Provider의 Name | M |
1-1 | className | string | Encryption Provider 가 구현된 Class 경로 | M |
1-2 | properties | json | O | |
Table. keyProvider Data format
No | Name | Type | Remark | M/O |
---|---|---|---|---|
1 | [KeyProvider Name] | string | 정의할 Key Provider의 Name | M |
1-1 | className | string | Key Provider 가 구현된 Class 경로 | M |
1-2 | properties | json | O | |
Example
"launcherAppId": "HoneMobile",
"targetDeviceType": "All",
"operations": {
"baseAddress": "https://hone.hanwha.co.kr",
"port": "443",
"contextPath": "/smartop_v4",
"applicationPath": "/operations/service",
"contentType": "application/json",
},
"encryptionProviders": {
"secureLayerEncryptionProvider": {
"className": "honemobile.client.security.crypto.SecureLayerEncryptionProvider"
}
},
"keyProviders": {
"hub1SecureLayerKeyProvider": {
"className": "honemobile.client.security.crypto.HubSecureLayerKeyProvider"
}
}
}
configuration.json
configuration.json 에서는 아래와 같은 항목에 대해서 설정을 한다.
- Hub 서버에 대한 설정
- Android / iOS 의 환경이 다르므로 이에 따라 필요한 설정
Table. configuration.json Data format
No | Name | Type | Value | Remark | M/O |
---|---|---|---|---|---|
1 | serviceTargets | json | * | 허브 서버 설정 하단 serviceTargets Data format 참조 | M |
2 | launcher | json | Launcher 설정 | M | |
2-1 | networkTimeout | Int | 네트워크 작업 중 read/connection timeout 값 설정 (ms단위) | M | |
2-2 | jsDevMode | bool | true | false | 비즈앱 개발 모드 설정 | O |
2-3 | useExternalStorage | bool | true | false | 리소스를 외부 저장소에 저장 (Android 설정 항목) | M |
2-4 | logLevel | string | trace debug info warn error | 앱 로그 레벨 설정 | M |
Table. serviceTargets Data format
No | Name | Type | Value | Remark | M/O |
---|---|---|---|---|---|
1 | [Hub Name] | string | 정의할 Hub의 Name | M | |
1-1 | baseAddress | string | Hub server URL | M | |
1-2 | port | number | 0~65536 | Hub server Port | O |
1-3 | contextPath | string | Hub server context Path | M | |
1-4 | applicationPath | string | Hub server service Path | M | |
1-5 | contentType | string | application/json | 허브의 데이터 포맷 | M |
1-6 | networkEncryption | json | 허브의 통신 암호화 정책 | M | |
1-6-1 | enabled | bool | 통신 암호화 활성화 여부 | M | |
1-6-2 | encryptionProviderName | string | encryptionProviders 에 정의 되어있는 암호화 프로바이더 이름 | M | |
1-6-3 | keyProviderName | string | keyProviders 에 정의 되어 있는 키 프로바이더 이름 | M | |
Example
"serviceTargets": {
"hub1": {
"baseAddress": "https://hone.hanwha.co.kr",
"port": "443",
"contextPath": "/smarthub_v4",
"applicationPath": "/bizhub/service",
"contentType": "application/json",
"networkEncryption": {
"enabled": false,
"encryptionProviderName": "secureLayerEncryptionProvider",
"keyProviderName": "hub1SecureLayerKeyProvider",
}
}
},
"launcher": {
"networkTimeout" : 10000,
"jsDevMode": false,
"useExternalStorage": true,
"logLevel": "debug"
}
}
actionflow.json
actionflow.json 에서는 아래와 같은 항목에 대해서 설정을 한다.
- startup - 클라이언트가 시작시 동작해야 하는 Action 지정 및 호출 순서
- resume - 클라이언트가 Pause 이후 Resume 시 동작해야 하는 Action 지정 및 호출 순서
Table. actionflow.json Data format
No | Name | Type | Remark | M/O |
---|---|---|---|---|
1 | startUp | json array | 구동시 실행될 task 순서 목록 | M |
2 | resume | json array | App 복귀시 실행될 task 순서 목록 | M |
|
Table. startUp and resume Data format
No | Name | Type | Remark | M/O |
---|---|---|---|---|
1 | name | string | Action 이름 | M |
2 | className | string | Action이 구현된 Class 경로 | M |
3 | properties | json | 각 Action별 하위 테이블 참고 | O |
|
제품에서 startup 및 resume용으로 제공하는 Action의 정보는 아래와 같다.
사용 설정 시 Priority 순서에 맞춰 사용해야 하며 제공되는 Action는 사용 용도 및 영역에 맞게 사용되어야만 정상적으로 기능을 제공한다.
Table. startup용 actionflow
Priority | name | className | Remark | M/O | Version |
---|---|---|---|---|---|
1 | installBuiltinBizAppAction | honemobile.client.actionflow.action.InstallBuiltinBizAppAction | 내장 비즈앱 설치 | O | |
2 | requestLoginAction | honemobile.client.actionflow.action.RequestLoginAction | Operations 로그인 | M | |
3 | updateConfiguratonAction | honemobile.client.actionflow.action.UpdateConfigurationAction | 설정파일 업데이트 | O | |
4 | updateLauncherAction | honemobile.client.actionflow.action.UpdateLauncherAction | 앱 업데이트 | O | |
5 | updateBizAppAction | honemobile.client.actionflow.action.UpdateBizAppAction | BizApp 업데이트 | O | |
6 | verifyBizAppAction | honemobile.client.actionflow.action.VerifyBizAppAction | BizApp 위변조 검사 | O | |
7 | showWindowAction | honemobile.client.actionflow.action.ShowWindowAction | 화면 출력 | O | |
Table. resume용 actionflow
Priority | name | className | Remark | M/O | Version |
---|---|---|---|---|---|
1 | checkUpdateAction | honemobile.client.actionflow.action.CheckUpdateAction | 앱과 BizApp 업데이트 확인 | O | |
|
제품에서 제공하는 각 Action의 properties 정보는 아래와 같다
Table. installBuiltinBizAppAction 의 properties
No | Name | Type | Remark | M/O | Version |
---|---|---|---|---|---|
1 | fileName | string | 내장 비즈앱의 파일 이름 | M | |
|
Table. updateLauncherAction 의 properties
No | Name | Type | Value | Remark | M/O | Version |
---|---|---|---|---|---|---|
1 | from | string | operations | store | 타깃이 되는 서버 정의 (기본값 operations) | O | |
|
Table. showWindowAction 의 properties
No | Name | Type | Value | Remark | M/O | Version |
---|---|---|---|---|---|---|
1 | windowName | string | 대상 Window 이름 | M | ||
1 | remoteUrl | string | Window 가 웹 화면인 경우에 기본 URL 설정 가능 | O | ||
|
Table. checkUpdateAction 의 properties
No | Name | Type | Value | Remark | M/O | Version |
---|---|---|---|---|---|---|
1 | from | string | operations | store | 대상 서버 (기본값 operations) | O | |
2 | checkLevel | string | all | force | all인 경우 Launcher/BizApp의 모든 업데이트 확인 (기본값 all) force인 경우 Launcher/BizApp의 강제 업데이트만 확인 | O | |
|
Example
"startUp" : [
{
"name": "installBuiltinBizAppAction",
"className": "honemobile.client.actionflow.action.InstallBuiltinBizAppAction",
"properties": {
"fileName": "hspample"
}
},
{
"name": "requestLoginAction",
"className": "honemobile.client.actionflow.action.RequestLoginAction"
},
{
"name": "updateConfigurationAction",
"className": "honemobile.client.actionflow.action.UpdateConfigurationAction"
},
{
"name": "updateLauncherAction",
"className": "honemobile.client.actionflow.action.UpdateLauncherAction",
"properties": {
"from": "operations"
}
},
{
"name": "updateBizAppAction",
"className": "honemobile.client.actionflow.action.UpdateBizAppAction"
},
{
"name": "verifyBizAppAction",
"className": "honemobile.client.actionflow.action.VerifyBizAppAction"
},
{
"name": "showWindowAction",
"className": "honemobile.client.actionflow.action.ShowWindowAction",
"properties": {
"windowName": "defaultWebWindow"
}
}
],
"resume" : [
{
"name": "checkUpdateAction",
"className": "honemobile.client.actionflow.action.CheckUpdateAction",
"properties": {
"from": "operations",
"checkLevel": "all"
}
}
]
}
window.json
window.json 에서는 아래와 같은 항목에 대해서 설정을 한다.
- 클라이언트에서 사용할 윈도우 설정
- 필요 시 추가 윈도우 설정
Table. window.json Data format
No | Name | Type | Remark | M/O |
---|---|---|---|---|
1 | windows | json | M | |
1-1 | [Window Name] | string | 정의할 Window의 Name (대소문자 구분) | M |
|
Table. [Window Name] Data format
No | Name | Type | Remark | M/O |
---|---|---|---|---|
1 | className | string | 실제 Plugin인 구현된 Class 경로 | M |
2 | properties | json | 윈도우에 전달되는 데이터 | O |
|
Example
"windows": {
"customWebWindow": {
"className": "com.hanwha.sample.window. CustomWebWindow",
"properties": {
}
},
"customWebPopupWindow": {
"className": "com.hanwha.sample.window.CustomWebPopupWindow"
},
"customWindow": {
"className": "com.hanwha.sample.window.CustomWindow"
},
"customPopupWindow": {
"className": "com.hanwha.sample.window.CustomPopupWindow"
}
}
}
plugin.json
plugin.json 에서는 아래와 같은 항목에 대해서 설정을 한다.
- 필요 시 추가 플러그 인 설정
Table plugin.json Data format
ID | Name | Type | Remark | M/O |
---|---|---|---|---|
1 | plugins | json | M | |
1-1 | [Plugin Name] | string | 플러그인 이름 | M |
|
Table. [Plugin Name] Data format
No | Name | Type | Remark | M/O |
---|---|---|---|---|
1 | className | string | 플러그인 이 구현된 클래스 전체 경로 | M |
|
Example
"plugins": {
"custom": {
"className": ".plugin.CustomPlugin"
}
}
}
제품에서 기본으로 제공하는 플러그인은 다음과 같다.
Table. 기본 plugin
No | name | className | Remark |
---|---|---|---|
1 | authentication | honemobile.client.plugin.AuthenticationPlugin | OP 로그인 |
2 | network | honemobile.client.plugin.NetworkPlugin | 서버와의 통신 채널 제공 |
3 | camera | honemobile.client.plugin.CameraPlugin | 디바이스 카메라 기능 |
4 | contact | honemobile.client.plugin.ContactPlugin | 주소록 정보 추가 및 조회 |
5 | sqlite | honemobile.client.plugin.SQLitePlugin | 디바이스 SQL 기능 |
6 | device | honemobile.client.plugin.DevicePlugin | 디바이스 정보 조회 |
7 | filerepository | honemobile.client.plugin.FileRepositoryPlugin | Local 파일 저장 서비스 |
8 | geolocation | honemobile.client.plugin.GeoLocationPlugin | 위치정보 조회 |
9 | window | honemobile.client.plugin.WindowPlugin | 화면 이동 및 출력 기능 |
10 | preference | honemobile.client.plugin.PreferencePlugin | Preference 기능 |
추가로 제공되는 Plugin은 다음과 같으며 기능을 제공받기 위해선 관련 라이브러리를 개발 프로젝트에 포함시켜야 한다.
각 Plugin 라이브러리에 대한 상세 설명 및 포함 방법은 Android 개발 가이드의 프로젝트 생성을 참고한다.
Table. 추가 plugin
No | name | className | Library Name | Remark | Version |
---|---|---|---|---|---|
1 | applinker | honemobile.client.plugin.AppLinkerPlugin | libhone-applinker-release.aar | 외부앱 연결 기능 | ▲3.0.0 |
2 | barcode | honemobile.client.plugin.BarcodePlugin | libhone-barcode-release.aar | 바코드 기능 | ▲2.6.4 |
3 | beacon | honemobile.client.plugin.BeaconPlugin | libhone-beacon-release.aar | 비콘기능 | ▲4.2.8 |
4 | clipboard | honemobile.client.plugin.ClipboardPlugin | libhone-clipboard-release.aar | 클립보드 기능 | ▲3.0.0 |
5 | fingerprint | honemobile.client.plugin.FingerprintPlugin | libhone-fingerprint-release.aar | 지문 인증 기능 | ▲3.0.0 |
6 | flashlight | honemobile.client.plugin.FlashlightPlugin | libhone-flashlight-release.aar | 플래쉬 기능 | ▲3.0.0 |
7 | gallery | honemobile.client.plugin.GalleryPlugin | libhone-gallery-release.aar | 갤러리 기능 | ▲3.0.0 |
8 | lockscreen | honemobile.client.plugin.LockscreenPlugin | libhone-lockscreen-release.aar | 잠금화면 기능 | ▲3.1.1 |
9 | log | honemobile.client.plugin.LogPlugin | libhone-log-release.aar | 로그 기능 | ▲3.0.0 |
10 | motion | honemobile.client.plugin.MotionPlugin | libhone-motion-release.aar | 단말 동작 정보 기능 | ▲3.0.0 |
11 | nfc | honemobile.client.plugin.NfcPlugin | libhone-nfc-release.aar | Nfc 태그 기능 | ▲4.2.8 |
12 | notice | honemobile.client.plugin.NoticePlugin | libhone-notice-release.aar | 공지사항 기능 | ▲2.6.4 |
13 | openapi | honemobile.client.plugin.OpenApiPlugin | libhone-openapi-release.aar | Open API 기능 | ▲3.7.13 |
14 | screen | honemobile.client.plugin.ScreenPlugin | libhone-screen-release.aar | 화면 밝기 기능 | ▲3.0.0 |
15 | securestorage | honemobile.client.plugin.SecureStoragePlugin | libhone-secure-storage-release.aar | 암호화 저장소 기능 | ▲3.1.1 |
16 | vibrator | honemobile.client.plugin.VibratorPlugin | libhone-vibrator-release.aar | 단말기 진동 기능 | ▲3.0.0 |