본문으로 건너뛰기

openBackgroundForm

Description

백그라운드 폼을 오버레이로 로드하고 표시합니다.

백그라운드 폼은 일반 페이지 전환 없이 화면 위에 오버레이로 표시되는 폼으로, 앱이 실행되는 동안 메모리에 유지됩니다. 같은 formPath 로 다시 호출하면 새로 로드하지 않고 기존 폼을 다시 표시합니다.

Parameters

파라미터타입설명
formPathString열 폼의 경로 (예: "group/myForm")
linkArgdynamic폼에 전달할 초기 인자. 불필요하면 "" 또는 null
callbackJSFunction?폼이 닫힐 때 result 값을 받을 콜백 함수. 불필요하면 null

Returns

void

Notes

  • 이미 로드된 폼을 다시 열면 재로드 없이 보여주기만 합니다 (showBackgroundForm 과 동일 효과).
  • 백그라운드 폼은 닫기 전까지 메모리에 유지됩니다. 완전히 제거하려면 closeBackgroundForm() 을 호출하세요.
  • 폼을 숨기기만 하려면 hideBackgroundForm() 을 사용하세요.
  • ⚠️ 백그라운드 폼 내부에서 $form.close() 는 동작하지 않습니다. 백그라운드 폼은 Navigator 스택이 아닌 Overlay 로 관리되기 때문입니다. 폼 내부에서 닫으려면 자신의 경로를 직접 명시하여 $app.closeBackgroundForm() 을 호출해야 합니다.
// 백그라운드 폼 내부에서 자기 자신 닫기
$app.closeBackgroundForm("alarm/watcher", { ok: true });

Example

// 알림 감시 폼을 백그라운드로 열기
$app.openBackgroundForm("alarm/watcher", null, function(result) {
$log.i("폼 종료 결과:", result);
});

// 초기 인자 전달
$app.openBackgroundForm("group/myForm", { userId: 123 }, function(result) {
if (result.ok) {
$log.i("처리 완료");
}
});
  • $app.hideBackgroundForm(formPath) — UI 숨김 (메모리 유지)
  • $app.showBackgroundForm(formPath) — 숨겨진 폼 다시 표시
  • $app.closeBackgroundForm(formPath, result) — 폼 종료 및 메모리 해제
  • $app.isBackgroundFormLoaded(formPath) — 로드 여부 확인
  • $app.postMessageToBackgroundForm(formPath, name, data) — 폼에 메시지 전송