본문으로 건너뛰기

postMessageToApp

postMessageToApp

앱 레벨 메시지를 전송합니다. KAppManager를 통해 라우팅됩니다.

파라미터

  • name (string): 앱 레벨에서 전달될 메시지 이름
  • data (any): 페이로드 (null 가능)
  • milliSeconds (number): 전송 전 지연 시간 (0 = 즉시 전송)

반환: 없음 (void)

설명

현재 폼이 아닌 **앱 레벨(KAppManager)**로 메시지를 전달합니다. milliSeconds가 0이면 즉시, 0보다 크면 지정한 밀리초 후에 전송합니다.

내부 동작은 다음과 같습니다.

$form.postMessageToApp(name, data, 0)
KAppManager().fireOnMessage(form, name, data)
messageStream (StreamController)
→ native 앱 코드에서 구독
경고

LucyStudio 스크립트 환경에서는 수신자가 없습니다.

messageStreamKAppManager에 공개(public)되어 있지만, 순수 LucyStudio 스크립트 레벨에서는 아무도 이 스트림을 구독하지 않습니다. namuh2처럼 Dart native 코드에서 별도로 구독해야 메시지가 처리됩니다.

// native 앱 코드에서만 처리 가능
KAppManager().messageStream.listen((msg) {
if (msg.key == "logout") { /* 처리 */ }
});

LucyStudio 스크립트에서 폼 간 메시지를 주고받으려면 postMessage 또는 postMessageAll을 사용하세요.

postMessage vs postMessageToApp 비교

메서드전달 대상
postMessage폼 레벨 (자신 또는 자식 폼)
postMessageToApp앱 레벨 (KAppManager 라우팅)

Example

// 즉시 앱으로 메시지 전송 (로그아웃 등)
$form.postMessageToApp("logout", null, 0);

// 2초 후 전송
$form.postMessageToApp("sessionExpired", { reason: "timeout" }, 2000);

관련

  • $form.postMessage(name, data, target) — 폼 레벨 메시지
  • $form.postMessageAll(name, data) — 자식 폼에 브로드캐스트
  • $form.postDelayedMessage(name, data, target, milliSeconds) — 지연 후 폼 메시지