Skip to main content

postMessageToApp

postMessageToApp

Sends an app-level message, routed through KAppManager.

Parameters

  • name (string): The message name delivered at app level
  • data (any): The payload (may be null)
  • milliSeconds (number): How long to wait before sending (0 = send immediately)

Returns: None (void)

Description

Delivers a message to the app level (KAppManager) rather than to the current form. With milliSeconds at 0 it sends immediately; above 0 it sends after that many milliseconds.

Internally the flow is:

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

Nothing receives this in the LucyStudio script environment.

messageStream is public on KAppManager, but at pure LucyStudio script level nobody subscribes to it. The message is only handled if Dart native code subscribes separately, as namuh2 does.

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

To pass messages between forms from a LucyStudio script, use postMessage or postMessageAll instead.

postMessage vs postMessageToApp

MethodDelivery target
postMessageForm level (itself or child forms)
postMessageToAppApp level (routed through KAppManager)

Example

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

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

Related

  • $form.postMessage(name, data, target) — form-level message
  • $form.postMessageAll(name, data) — broadcasts to child forms
  • $form.postDelayedMessage(name, data, target, milliSeconds) — delayed form message