window
window 은 HSP 에서 기본으로 제공하는 API로 별도의 설정 없이 사용 가능하다.
window 는 HSP 의 화면 단위인 Window 를 제어 하거나 다이얼로그 윈도우를 조정하는 등의 기능을 제공 하며 window 를 제어하기 위해서는 WindowParams 을 전달하여 Window 를 관리할 수 있으며 그 세부내용은 아래의 표를 참고 한다.
WindowParams Class
public String url;
public String windowName;
public Map<String, Object> params;
public boolean animated;
public final ResultCallback<Object> successCallback;
public final ResultCallback<HspError> errorCallback;
}
WindowParams
필드 | 설명 | 비고 | M/O |
---|---|---|---|
url | WebWindow 일 경우 지정한 URL 을 Load 한다. | 비즈앱 경로의 경우 비즈앱 root폴더 기준 절대경로를 기입, http 또는 https scheme이 있는 경우 웹 화면 경로로 인식 | O |
windowName | assets/config/window.json 에 설정해둔 Window 을 이용하여 화면에 표현 한다. | M | |
params | Window 에 전달한 파라메터 값 | O | |
animated | 원도우 생성 및 종료시 애니메이션 실행 여부 | HSP 에 내장되어 있는 애니메이션 리소스를 통해 화면을 출력 한다. 리소스 변경 방법은 Window Animation 내용을 참조하면 된다. | O |
successCallback | 결과 전달을 위한 콜백 | M | |
errorCallback | 에러 전달을 위한 콜백 | M | |
WindowParams 는 Builder 패턴 형태로 구성하고 있으며 아래와 같이 사용가능 하다.
Example
showWindow
showWindow 는 사용자가 assets/config/window.json 에 설정해둔 윈도우를 이용해 화면에 내용을 출력하는 역할을 하며 생성되어 있는 경우 최상단으로 이동 후 보여준다.
Example
.windowName("windowName")
.url("/main/index.html")
.successCallback {
//ToDo
}
.errorCallback {
//ToDo
}
.build()
DAPWindow.showWindow(params)
.windowName("windowName")
.url("/main/index.html")
.successCallback(result -> {
//ToDo
})
.errorCallback(e->{
//ToDo
})
.build();
DAPWindow.showWindow(params);
sendMessage
sendMessage은 assets/config/window.json 에 설정해둔 윈도우를 이용해 Map 형태의 메세지를 전달한다.
options
필드 | 설명 | M/O |
---|---|---|
windowName | assets/config/window.json 에 설정해둔 윈도우 이름 | M |
message | Map 형태의 메세지 | M |
Example
message["key"] = "value"
DAPWindow.sendMessage(this@MainActivity, "windowName", message, , {
// TODO
}) {
// TODO
}
message.put("key", "value");
DAPWindow.sendMessage(MainActivity.this, "windowName", message, result -> {
// TODO
}, e -> {
// TODO
});
currentWindow
현재 윈도우 객체를 반환한다.
Example
getWindow
윈도우 아이디에 해당하는 윈도우가 객체를 반환한다.
객체가 없는 경우 null 을 반환한다.
options
필드 | 설명 | M/O |
---|---|---|
windowName | assets/config/window.json 에 설정해둔 윈도우 이름 | M |
Example
hasWindow
윈도우가 이미 생생되었는지 여부를 확인한다.
options
필드 | 설명 | M/O |
---|---|---|
windowName | assets/config/window.json 에 설정해둔 윈도우 이름 | M |
Example
// TODO
}) {
// TODO
}
// TODO
}, e -> {
// TODO
});
destroyWindow
생성 된 윈도우를 삭제한다.
options
필드 | 설명 | M/O |
---|---|---|
windowName | assets/config/window.json 에 설정해둔 윈도우 이름 | M |
Example
clearHistory
현재 윈도우가 web 윈도우면 history 를 제거 한다
Example
clearCache
캐시는 애플리케이션별로 이루어지므로 사용된 모든 WebView에 대한 캐시가 지워진다.
Example
goBack
현 윈도우가 Web 윈도우면 webview 의 history 에 따라 back 하게 되고 history 가 더 이상 존재하지 않으면 윈도우를 remove 한다.
Example
canGoBack
현재 윈도우가 web 윈도우면 webview 에 history 를 파악하여 back 이 가능한 지 유/무 를 전달 받는다
Example
// TODO
}) {
// TODO
}
// TODO
}, e -> {
// TODO
});
goForward
현 윈도우가 Web 윈도우면 webview 의 history 에 따라 forward 가능한 경우 다음 페이지로 이동한다.
Example
canGoForward
현재 윈도우가 web 윈도우면 webview 에 history 를 파악하여 forward 가 가능한 지 유/무 를 전달 받는다.
Example
// TODO
}) {
// TODO
}
// TODO
}, e -> {
// TODO
});
alert
경고창을 띄운다
경과창은 Dialog을 전달하여 띄울 수 있으며 그 세부내용은 아래의 표를 참고 한다.
Dialog Class
public final int type;
public final View view;
public final String title;
public final String message;
public final Object obj;
public final String positiveText;
public final String negativeText;
public final boolean finish;
public final boolean cancelable;
public final boolean processKill;
public final OnResultListener<DialogInterface> listener;
}
Dialog
필드 | 설명 |
---|---|
type | 다이얼로그 타입 |
view | 커스텀 뷰 |
title | 다이얼로그 타이틀 |
message | 다이얼로그 메시지 |
obj | 다이얼로그에 전달해야할 커스텀 객체 |
positiveText | positive 버튼의 label text |
negativeText | negative 버튼의 label text |
finish | positive 버튼 선택 후 앱을 종료 시킬지 유/무 |
cancelable | 다이얼로그가 show 된 상태에서 back 키에 의해 종료할지 유/무 |
processKill | positive 버튼 선택 후 앱을 강제 종료 시킬지 유/무 |
listener | positive / negative 버튼 중 어느것으 선택 되었느지 결과 |
Example
.message("alert message")
.build())
.message("alert message")
.build());
confirm
확인창을 띄운다.
확인창은 Dialog을 전달하여 띄울 수 있으며 그 세부내용은 아래의 표를 참고 한다.
Dialog Class
public final int type;
public final View view;
public final String title;
public final String message;
public final Object obj;
public final String positiveText;
public final String negativeText;
public final boolean finish;
public final boolean cancelable;
public final boolean processKill;
public final OnResultListener<DialogInterface> listener;
}
Dialog
필드 | 설명 |
---|---|
type | 다이얼로그 타입 |
view | 커스텀 뷰 |
title | 다이얼로그 타이틀 |
message | 다이얼로그 메시지 |
obj | 다이얼로그에 전달해야할 커스텀 객체 |
positiveText | positive 버튼의 label text |
negativeText | negative 버튼의 label text |
finish | positive 버튼 선택 후 앱을 종료 시킬지 유/무 |
cancelable | 다이얼로그가 show 된 상태에서 back 키에 의해 종료할지 유/무 |
processKill | positive 버튼 선택 후 앱을 강제 종료 시킬지 유/무 |
listener | positive / negative 버튼 중 어느것으 선택 되었느지 결과 |
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());
showLoadingScreen
로딩 다이얼로그를 띄운다
로딩 다이얼로그은 Dialog을 전달하여 띄울 수 있으며 그 세부내용은 아래의 표를 참고 한다.
LoadingDialog Class
public final int type;
public final int style;
public final long max;
public final View view;
public final String message;
public final boolean secondProgress;
}
LoadingDialog
필드 | 설명 |
---|---|
type | 다이얼로그 타입 |
style | 다이얼로그 스타일 |
max | 프로그래스 최대 값 |
view | 다이얼로그 화면에 대신 보여질 커스텀 뷰 |
message | 다이얼로그 메시지 |
secondProgress | 두 번째 프로그래스 바 사용 유/무 |
Example
hideLoadingScreen
로딩 다이얼로그를 닫는다
Example
fullscreen
전체 화면으로 변경하거나 복구한다
options
필드 | 설명 | M/O |
---|---|---|
fullscreen |
| M |
Example
isFullscreen
현재 화면이 전체 화면인지 유/무 를 반환 한다
Example
// TODO
}) {
// TODO
}
// TODO
}, e -> {
// TODO
});
orientation
단말의 orientation 정보를 반환 한다
Example
// TODO
}) {
// TODO
}
// TODO
}, e -> {
// TODO
});
exitApp
앱을 종료 한다
Example
Error Code
Code | Cause | Comment |
---|---|---|
E11500 | 파라메터 값이 잘못되어 있을 경우 | |
E11501 | 전달된 액션 값이 알 수 없는 액션일 경우 | |
E11502 | 윈도우 이름이 잘못되어 있을 경우 | |
E11503 | Fullscreen 설정을 위한 값이 잘못되어 있을 경우 | |
E11504 | 윈도우 간에 메시지 전송을 위한 값이 잘못되어 있을 경우 | |
E11550 | 실행 중 오류가 발생 되었을 경우 | |
E11551 | assets/config/window.json 에 설정해둔 Window 가 존재하지 않는 경우 | |
E11552 | 윈도우 생성에 실패한 경우 | |
E11553 | 윈도우 삭제 시 생성된 윈도우가 존재하지 않는 경우 | |
E11554 | 윈도우 생성 및 이동시 현재 윈도우가 팝업 윈도우인 경우 | |
E11555 | 윈도우 간에 메시지가 전달되지 않는 경우 | |
E11556 | 설치 된 비즈앱이 존재하지 않은 경우 | |
E11557 | 요청한 비즈앱 경로의 페이지를 찾을 수 없는 경우 | |
E11558 | 요청한 비즈앱의 경로가 비즈앱이 설치 된 경로 외 파일에 접근을 할 경우 | |
E11599 | 알 수 없는 오류가 발생 되었을 경우 | |