01. 웹 리소스 구조
HONE Smart Platform v4버전 기반에서 동작하는 웹 리소스는 v3 버전 이하 기반과는 다르게 SPA(Single Page Application) 구조를 차용하여 1개의 웹 리소스 만으로 구성된다.
v4버전에서는 부분 업데이트 기능이 기본 기능으로 제공되어 배포를 위해 다수 개의 웹 리소스로 구성되던 예전 버전과 비교하여 개선된 구조이다.
필수 파일 및 폴더 구조는 다음과 같다.
(* 표시를 한 파일은 반드시 존재해야 하는 필수 파일이다)
Picture 1. 웹 리소스 구조
├─ index.html *
├─ config.xml *
├─ icon.png *
├─ css
├─ img
├─ js
├─ html
└─ lib
필수 파일 및 폴더에 대한 간략한 설명은 다음과 같다.
Table 2. 웹 리소스 구성
No | File/Folder | Description | M/O |
---|---|---|---|
1 | index.html | 웹 리소스의 시작 페이지 | M |
2 | config.xml | 웹 리소스의 메타데이터 설정 파일 | M |
3 | icon.png | 웹 리소스 대표 아이콘 | M |
4 | css | CSS 파일용 폴더 | O |
5 | img | Image 파일용 폴더 | O |
6 | js | Javascript 파일용 폴더 | O |
7 | html | Html 파일용 폴더 | O |
8 | lib | 라이브러리 파일용 폴더 | O |
index.html
해당 파일은 웹 리소스의 시작 페이지로 서브 뷰들의 프레임 역할을 하며 스크립트 파일들을 로드하는 역할도 수행한다.
단말기 대상으로 화면 구성 시 아래와 같이 viewport의 width 사이즈를 단말기의 width로 설정한다.
Picture 3. index.html 필수 메타데이타
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
</head>
<body>
</body>
</html>
config.xml
웹 리소스의 메타데이터 설정 정보를 포함하는 파일로 v4에서는 웹 리소스를 SPA(Single Page Application) 구조를 차용하여 한 개의 config.xml 파일을 반드시 포함하고 있어야 한다.
예제는 아래와 같다.
Picture 4. config.xml 예제
<name>com.hanwhasystem.sample</name>
<type>required</type>
<title>Web Resource Sample</title>
<version>4.1.4</version>
<icon>icon.png</icon>
<url>index.html</url>
<description>Web Resource용 샘플</description>
<author>Hanwha System/ICT</author>
<securedPath></securedPath>
</bizapp>
각 항목별 간략한 설명은 다음과 같다.
Table 5. config.xml 설명
No | Element | Remark | M/O |
---|---|---|---|
1 | name | 웹 리소스의 고유 ID이며 Namespace를 이용한 Naming을 추천한다 (Ex: com.hanwhasystem.sample) | M |
2 | title | 웹 리소스의 제목 | M |
3 | version | [major].[minor].[micro] 형태의 웹 리소스 버전 정보
| M |
4 | url | 웹 리소스 실행 시 기본으로 화면에 로딩될 시작 페이지 경로 (파일명 포함) | M |
5 | icon | 웹 리소스의 아이콘 경로 (파일명 포함) | M |
6 | type | 웹 리소스의 종류 (required으로 고정) | M |
7 | description | 웹 리소스에 대한 설명 (Operations Admin에 노출되는 정보) | M |
8 | author | 웹 리소스 작성자 | M |
9 | securedPath | 웹 리소스의 암호화 대상 파일 / 폴더 경로 (2. 암호화 적용 참고) | O |
hone.js
HONE Smart Platform에서 제공되는 Javascript API를 사용하기 위해서 바인딩을 위한 hone.js 파일을 제공한다.
해당 파일은 Javascript API를 사용하는 파일에서 아래와 같이 로드를 시켜야만 API의 정상적인 기능을 제공받을 수 있다.
Picture 6. hone.js 로드
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
</head>
<body>
<script type=”text/javascript” src="./js/hone.js”></script>
</body>
</html>
만약 Javascript ES6에서 hone.js의 모듈을 import 하여 사용할 경우 모듈을 참조하는 파일의 html 파일에서 script 태그의 type 값을 module로 수정해야 한다.
Picture 7. ES6 hone.js 로드
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
</head>
<body>
<script type=”module” src="./js/device.js”></script>
</body>
</html>
hone.js에서 제공하는 모듈은 사용하는 Javascript 파일에서 아래와 같이 import를 사용한다.
import { hone } from './hone.js'
해당 파일은 다음의 기능을 제공한다.
- Android/iOS 네이티브와 Javascript API 바인딩
- 성공/실패 콜백 함수 관리
- Javascript API의 네이티브 반환값 선처리
- HONE event (honeSystemLocaleChanged, honeResume,honePause) 디스패처