Window


Window 은 HSP 에서 기본으로 제공하는 API로 별도의 설정 없이 사용 가능하다.

Window 는 HSP 의 화면 단위인 Window 를 제어 하거나 다이얼로그 윈도우를 조정하는 등의 기능을 제공 하며 Window 를 제어하기 위해서는 WindowParams 을 전달하여 Window 를 관리할 수 있으며 그 세부내용은 아래의 표를 참고 한다.

WindowParams Class

public class WindowParams {
   private int animation = WindowBase.ANI_NONE;
   private String url;
   private String bizappId;
   private String windowName;
   private String[] params;
   private boolean keyBack = false;
}

WindowParams

필드설명
animation윈도우에 적용할 애니메이션 종류
urlWebWindow 일 경우 지정한 URL 을 Load 한다.
bizappIdWebWindow 일 경우 지정한 BizApp 을 Load 한다.
windowNameassets/config/window.json 에 설정해둔 Window 을 이용하여 화면에 표현 한다. (기본 값 : defaultWebWindow)
paramsWindow 에 전달한 파라메터 값
keyBack사용하지 않음
  

WindowParams 는 Builder 패턴 형태로 구성하고 있으며 아래와 같이 사용가능 하다.

Example

WindowParams.builder().params(params).windowName(windowName).build()

showWindow

showWindow 는 사용자가 assets/config/window.json 에 설정해둔 윈도우를 이용해 화면에 내용을 출력하는 역할을 한다.

기존 HSP 2.X 버전 에서는 goToNativeWindow, goToBizappWindow 등의 용도별로 Window 를 관리하는 Method 를 다르게 사용하였으나 showWindow 으로 통합 되었다.

각각 어떤식으로 사용되는지 하단의 예제를 참고 한다.

Example (goToNativeWindow) 

// 3.10.18 이상
DAPWindow.showWindow(WindowParams.builder().windowName("nativeWindowName").build(), {
       // TODO
   }) {
       // TODO
   }

// 3.10.18 이하
DAPWindow.showWindow(WindowParams.builder().windowName("nativeWindowName").build())
// 3.10.18 이상
DAPWindow.showWindow(WindowParams.builder().windowName("nativeWindowName").build(), result -> {
       // TODO
   }, e -> {
       // TODO
   });

// 3.10.18 이하
DAPWindow.showWindow(WindowParams.builder().windowName("nativeWindowName").build());

Example (goToBizappWindow) 

// 윈도우 기본값은 defaultWebWindow 이며 생략 가능하다.
// 3.10.18 이상
DAPWindow.showWindow(WindowParams.builder().bizapp("bizappId").build(), {
       // TODO
   }) {
       // TODO
   }

// 3.10.18 이하
DAPWindow.showWindow(WindowParams.builder().bizapp("bizappId").build())
// 3.10.18 이상
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

val params = WindowParams.builder().windowName("windowName").build()

// 3.10.18 이상
DAPWindow.showPopupWindow(params, {
       // TODO
   }) {
       // TODO
   }

// 3.10.18 이하
DAPWindow.showPopupWindow(params) { result, value ->
    when (result) {
        OnResultListener.TRUE -> {
           // TODO
       }
       else -> {
           // TODO
       }
   }
}
WindowParams params = WindowParams.builder().windowName("windowName").build();

// 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

// 3.10.18 이상
DAPWindow.goBack(activity, {
       // TODO
   }) {
       // TODO
   }

// 3.10.18 이하
DAPWindow.goBack(activity)
// 3.10.18 이상
DAPWindow.goBack(activity, result -> {
       // TODO
   }, e -> {
       // TODO
   });

// 3.10.18 이하
DAPWindow.goBack(activity);

clearHistory

현재 윈도우가 web 윈도우면 history 를 제거 한다

Example 

DAPWindow.clearHistory(activity)
DAPWindow.clearHistory(activity);

canGoBack

현재 윈도우가 web 윈도우면 webview 에 history 를 파악하여 back 이 가능한 지 유/무 를 전달 받는다

Example

// 3.10.18 이상
DAPWindow.canGoBack(activity, {
       // TODO
   }) {
       // TODO
   }

// 3.10.18 이하
DAPWindow.canGoBack(activity) { result, value ->
    when (result) {
        OnResultListener.TRUE -> {
           // TODO
       }
       else -> {
           // TODO
       }
   }
}
// 3.10.18 이상
DAPWindow.canGoBack(activity, result -> {
       // TODO
   }, e -> {
       // TODO
   });

// 3.10.18 이하
DAPWindow.canGoBack(activity, (result, value) -> {
   if (result == OnResultListener.TRUE) {
       // TODO
   } else {
       // TODO
   }
});

alert

경고창을 띄운다

Example

DAPWindow.alert(activity, Dialog.builder().title("alert title")
   .message("alert message")
   .build())
DAPWindow.alert(activity, Dialog.builder().title("alert title")
   .message("alert message")
   .build());

아래의 방법은 Deprecated 되었다.

DAPWindow.alert(activity, "alert title", "alert message");

confirm

확인창을 띄운다

Example

DAPWindow.confirm(activity, Dialog.builder().title("confirm title")
   .message("confirm msg")
   .listener { result, value ->  
        when (result) {
            OnResultListener.TRUE -> {
               // TODO
           }
           else -> {
               // TODO
           }
       }
   }.build())
DAPWindow.confirm(activity, Dialog.builder().title("confirm title")
   .message("confirm msg")
   .listener((result, value) -> {
       switch (result) {
           case OnResultListener.TRUE:
               // TODO
               break;
           default:
               // TODO
               break;
       }
   }).build());

아래의 방법은 Deprecated 되었다.

DAPWindow.confirm(activity, "confirm title", "confirm msg", (result, value) -> {
   switch (result) {
       case OnResultListener.TRUE:
           // TODO
           break;
       default:
           // TODO
           break;
   }
});

showLoadingScreen

로딩 다이얼로그를 띄운다

Example

DAPWindow.showLoadingScreen(activity, LoadingDialog.builder().message("hello world").build())
DAPWindow.showLoadingScreen(activity, LoadingDialog.builder().message("hello world").build());

아래의 방법은 Deprecated 되었다.

DAPWindow.showLoadingScreen(activity, "Please wait");

hideLoadingScreen

로딩 다이얼로그를 닫는다

Example

DAPWindow.hideLoadingScreen(activity)
DAPWindow.hideLoadingScreen(activity);

fullscreen

fullScreen는 3.0.0 버전 이상 부터 제공됩니다.

전체 화면으로 변경하거나 복구한다

Example

DAPWindow.fullscreen(activity, true)
DAPWindow.fullscreen(activity, true);

isFullscreen

isFullScreen는 3.0.0 버전 이상 부터 제공됩니다.

현재 화면이 전체 화면인지 유/무 를 반환 한다

Example

// 3.10.18 이상
DAPWindow.isFullscreen(activity, {
   // TODO
}) {
   // TODO
}

// 3.10.18 이하
DAPWindow.isFullscreen(activity)
// 3.10.18 이상
DAPWindow.isFullscreen(activity, result -> {
       // TODO
   }, e -> {
       // TODO
   });

// 3.10.18 이하
DAPWindow.isFullscreen(activity);

orientation

orientation는 3.0.0 버전 이상 부터 제공됩니다.

단말의 orientation 정보를 반환 한다

Example

// 3.10.18 이상
DAPWindow.orientation(activity, {
   // TODO
}) {
   // TODO
}

// 3.10.18 이하
DAPWindow.orientation(activity)
// 3.10.18 이상
DAPWindow.orientation(activity, result -> {
       // TODO
   }, e -> {
       // TODO
   });

// 3.10.18 이하
DAPWindow.orientation(activity);

exitApp

앱을 종료 한다

Example

DAPWindow.exitApp(activity)
DAPWindow.exitApp(activity);