Window
Window 은 HSP 에서 기본으로 제공하는 API로 별도의 설정 없이 사용 가능하다.
Window 는 HSP 의 화면 단위인 Window 를 제어 하거나 다이얼로그 윈도우를 조정하는 등의 기능을 제공 하며 Window 를 제어하기 위해서는 WindowParams 을 전달하여 Window 를 관리할 수 있으며 그 세부내용은 아래의 표를 참고 한다.
WindowParams Class
private int animation = WindowBase.ANI_NONE;
private String url;
private String bizappId;
private String windowName;
private String[] params;
private boolean keyBack = false;
}
WindowParams
필드 | 설명 |
---|---|
animation | 윈도우에 적용할 애니메이션 종류 |
url | WebWindow 일 경우 지정한 URL 을 Load 한다. |
bizappId | WebWindow 일 경우 지정한 BizApp 을 Load 한다. |
windowName | assets/config/window.json 에 설정해둔 Window 을 이용하여 화면에 표현 한다. (기본 값 : defaultWebWindow) |
params | Window 에 전달한 파라메터 값 |
keyBack | 사용하지 않음 |
WindowParams 는 Builder 패턴 형태로 구성하고 있으며 아래와 같이 사용가능 하다.
Example
showWindow
showWindow 는 사용자가 assets/config/window.json 에 설정해둔 윈도우를 이용해 화면에 내용을 출력하는 역할을 한다.
기존 HSP 2.X 버전 에서는 goToNativeWindow, goToBizappWindow 등의 용도별로 Window 를 관리하는 Method 를 다르게 사용하였으나 showWindow 으로 통합 되었다.
각각 어떤식으로 사용되는지 하단의 예제를 참고 한다.
Example (goToNativeWindow)
DAPWindow.showWindow(WindowParams.builder().windowName("nativeWindowName").build(), {
// TODO
}) {
// TODO
}
// 3.10.18 이하
DAPWindow.showWindow(WindowParams.builder().windowName("nativeWindowName").build())
DAPWindow.showWindow(WindowParams.builder().windowName("nativeWindowName").build(), result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
DAPWindow.showWindow(WindowParams.builder().windowName("nativeWindowName").build());
Example (goToBizappWindow)
// 3.10.18 이상
DAPWindow.showWindow(WindowParams.builder().bizapp("bizappId").build(), {
// TODO
}) {
// TODO
}
// 3.10.18 이하
DAPWindow.showWindow(WindowParams.builder().bizapp("bizappId").build())
DAPWindow.showWindow(WindowParams.builder().bizapp("bizappId").build(), result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
// 윈도우 기본값은 defaultWebWindow 이며 생략 가능하다.
DAPWindow.showWindow(WindowParams.builder().bizapp("bizappId").build());
showPopupWindow
showPopupWindow 는 assets/config/window.json 에 설정해둔 팝업 윈도우를 이용해 화면에 내용을 출력하는 역할을 한다.
기존 HSP 2.X 버전 에서는 showNativePopup / showNativeWebPopup 이름으로 동작하였으나 showPopupWindow 으로 통합 되었다.
Example
// 3.10.18 이상
DAPWindow.showPopupWindow(params, {
// TODO
}) {
// TODO
}
// 3.10.18 이하
DAPWindow.showPopupWindow(params) { result, value ->
when (result) {
OnResultListener.TRUE -> {
// TODO
}
else -> {
// TODO
}
}
}
// 3.10.18 이상
DAPWindow.showPopupWindow(params, result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
DAPWindow.showPopupWindow(params, (result, value) -> {
switch (result) {
case OnResultListener.TRUE:
// TODO
break;
default:
// TODO
break;
}
});
goBack
현 윈도우가 Web 윈도우면 webview 의 history 에 따라 back 하게 되고 history 가 더 이상 존재하지 않으면 윈도우를 remove 한다.
Example
DAPWindow.goBack(activity, {
// TODO
}) {
// TODO
}
// 3.10.18 이하
DAPWindow.goBack(activity)
DAPWindow.goBack(activity, result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
DAPWindow.goBack(activity);
clearHistory
현재 윈도우가 web 윈도우면 history 를 제거 한다
Example
canGoBack
현재 윈도우가 web 윈도우면 webview 에 history 를 파악하여 back 이 가능한 지 유/무 를 전달 받는다
Example
DAPWindow.canGoBack(activity, {
// TODO
}) {
// TODO
}
// 3.10.18 이하
DAPWindow.canGoBack(activity) { result, value ->
when (result) {
OnResultListener.TRUE -> {
// TODO
}
else -> {
// TODO
}
}
}
DAPWindow.canGoBack(activity, result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
DAPWindow.canGoBack(activity, (result, value) -> {
if (result == OnResultListener.TRUE) {
// TODO
} else {
// TODO
}
});
alert
경고창을 띄운다
Example
.message("alert message")
.build())
.message("alert message")
.build());
아래의 방법은 Deprecated 되었다.
confirm
확인창을 띄운다
Example
.message("confirm msg")
.listener { result, value ->
when (result) {
OnResultListener.TRUE -> {
// TODO
}
else -> {
// TODO
}
}
}.build())
.message("confirm msg")
.listener((result, value) -> {
switch (result) {
case OnResultListener.TRUE:
// TODO
break;
default:
// TODO
break;
}
}).build());
아래의 방법은 Deprecated 되었다.
switch (result) {
case OnResultListener.TRUE:
// TODO
break;
default:
// TODO
break;
}
});
showLoadingScreen
로딩 다이얼로그를 띄운다
Example
아래의 방법은 Deprecated 되었다.
hideLoadingScreen
로딩 다이얼로그를 닫는다
Example
fullscreen
전체 화면으로 변경하거나 복구한다
Example
isFullscreen
현재 화면이 전체 화면인지 유/무 를 반환 한다
Example
DAPWindow.isFullscreen(activity, {
// TODO
}) {
// TODO
}
// 3.10.18 이하
DAPWindow.isFullscreen(activity)
DAPWindow.isFullscreen(activity, result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
DAPWindow.isFullscreen(activity);
orientation
단말의 orientation 정보를 반환 한다
Example
DAPWindow.orientation(activity, {
// TODO
}) {
// TODO
}
// 3.10.18 이하
DAPWindow.orientation(activity)
DAPWindow.orientation(activity, result -> {
// TODO
}, e -> {
// TODO
});
// 3.10.18 이하
DAPWindow.orientation(activity);
exitApp
앱을 종료 한다
Example