04. Window 개발
HONE Smart Platform 은 앱 화면을 구성하기 위한 기본 윈도우로 HMPWindow, HMPPopupWebWindow, HMPWebWindow, HMPPopupWindow 4종류의 Window를 제공한다.
Window는 하나의 UIViewController로 구성되며, HONE Smart Platform 내 생성된 UINavigationController 위에서 각 Window들이 교체되는 방식으로 앱 화면을 구현한다.
Table. 지원 Window 종류
No | Class Name | Remark |
1 | HMPWindow | 기본 Native Window |
2 | HMPWebWindow | 기본 Web Window |
3 | HMPPopupWindow | 팝업 Native Window |
4 | HMPPopupWebWindow | 팝업 Web Window |
Native측의 Window 개발
추가하고자 하는 Window의 종류에 따라 상속받는 Class를 선택하여 개발한다.
다음은 HMPWebWindow를 상속받아 추가 Web Window 생성 방법을 설명한다.
- Project 선택
- New Group 메뉴 선택
- windows 입력
- windows Group 폴더
- New File 메뉴 선택
- iOS - Source - Cocoa Touch Class 선택
- Next 버튼 선택
- Class명 입력 (CustomWindow로 가정)
- Subclass of 항목에 HMPWebWindow작성
- Next 버튼 선택
- Windows 폴더 생성
- Windows 폴더 선택
- Create 버튼 선택
View Customizing
제품 화면에 커스텀 화면이 필요한 경우 각 클래스마다 접근 해야 하는 부모 변수가 다르다.
Table. 접근 부모 변수
No | Class Name | 부모 변수 |
1 | HMPWindow | self.view |
2 | HMPWebWindow | self.view |
3 | HMPPopupWindow | self.contentView |
4 | HMPPopupWebWindow | self.contentView |
window.json 내 Custom Window 추가
앱 시동 시 해당 Window의 인스턴스를 생성하기 위해 window.json 파일에 Window 정보를 추가한다.
Example
"customWindow": {
"className": "CustomWindow"
},
"defaultWebWindow": {
"className": "HMPWebWindow"
},
"defaultWebPopupWindow": {
"className": "HMPPopupWebWindow"
},
"defaultWindow": {
"className": "HMPWindow"
},
"defaultPopupWindow": {
"className": "HMPPopupWindow"
}
}
Window 이동
아래 윈도우 정보를 전달하면 윈도우를 이동할 수 있다.
지정할 수 있는 윈도우 옵션은 아래와 같다.
1. 대상 윈도우 이름
2. BizApp 화면 경로 또는 오픈할 URL 경로
3. animation 사용 옵션
특정 비즈앱으로 이동
비즈앱으로 이동하기 위해서는 윈도우 이름과 BizApp 화면 경로, 기본 애니메이션 사용 여부를 설정하면 된다.
Example
}, failure: { error in
})
} failure:^(NSError *error) {
}];
특정 URL 로 이동
특정 URL 로 이동하려면 윈도우 이름과 url, 기본 애니메이션 사용 여부를 설정하면 된다.
Example
}, failure: { error in
})
} failure:^(NSError *error) {
}];
Animation
HSP 에서 윈도우간 이동을 할 때 동적인 화면을 제공하기 위해 Animation 기능을 제공 한다. animated 파라미터를 이용하여 설정할 수 있으며 인자 값은 다음과 같다.
true : 기본 애니메이션 사용
false : 기본 애니메이션 미사용
Example
}, failure: { error in
})
} failure:^(NSError *error) {
}];