Skip to main content

LG TV (webOS)

LG webOS is a first-class Hosanna Web DOM target. It shares Hosanna views and browser infrastructure while its initializer supplies Magic Remote input, webOS lifecycle, audio guidance, and native TV media integration.

The production-ready target includes native HLS and PlayReady integration, captions, audio guidance, storage, lifecycle recovery, packaging, and device workflows. The supported baseline is webOS 5.0+ (2020 TV, Chromium 68). Unlike the Tizen manifest requirement, neither appinfo.json nor HST enforces that baseline. Older televisions are outside the supported range.

Run the target​

npx hst run webos dev emulator
npx hst build webos prod device --non-interactive
npx hst run webos dev device --device living-room

The build command returns an .ipk without contacting a TV. The device run uses the configured ares device for install and launch. Inspect and terminate are separate commands:

npx hst device:inspect webos --device living-room
npx hst device:terminate webos --device living-room

The inspector command invokes ares-inspect --open for the resolved alias and application ID. Inspector availability depends on Developer Mode and the selected TV model.

Runtime boundaries​

ConcernImplementation
RenderingShared Web DOM SceneGraph implementation
InputWebOsRemoteInputAdapter; browser preview uses WebKeyboardWebOsInputAdapter
VideoShared SGVideo semantics over the native webOS HTML media implementation
DRMPlayReady through the webOSTV.js/Luna initiator path
CaptionsShared Hosanna-rendered sidecar WebVTT plus native in-stream tracks
Audio guideARIA focus proxy synchronized with the webOS audioGuidance setting
LifecyclewebOSLaunch, webOSRelaunch, visibility, and before-unload signals normalized to Hosanna lifecycle state
Storage/debuggingShared Web storage, package-relative filesystem, WebSocket, Remote Debug, and MCP protocol

LG's native application path is HTML media plus vendor media options and Luna services; it is not a Samsung AVPlay analogue. The webOS target does not import Shaka, hls.js, or dash.js.

The vendor DRM integration accepts PlayReady through the Luna initiator contract. It fails clearly if content.drmHeaders or a callback-based drmHttpAgent is supplied, because that vendor contract cannot represent either requirement. Applications should advertise PlayReady only when their content service, license configuration, and target models support the Luna initiator path.

Remote and Back​

Magic Remote directional, OK, color, media, and Back events enter Hosanna's canonical input pipeline. appinfo.json sets disableBackHistoryAPI: true so Back key 461 reaches the application. Long-press/platform-exit behavior remains owned by the TV and must be tested on hardware.

Accessibility and lifecycle​

The app declares accessibility.supportsAudioGuidance and uses the vendor settings service to observe audio-guidance changes. Hosanna announcements still originate from focused views and the shared TTS queue.

handlesRelaunch: true lets the webOS lifecycle adapter receive the vendor relaunch event without discarding Hosanna's shared launch model. In physical tests, no-argument relaunch uses the webOS driver to terminate and launch, then waits for MCP reconnection. Query-bearing rig navigation uses a bounded same-package-file MCP reload; it is not an ares-launch deep-link capability. Test vendor launch arguments, Home/background, foreground, and termination separately on hardware.

Release checklist​

Validate the same TV contract as Tizen, including package workflow, relative assets, persistence, real remote timing, clear and encrypted playback, caption overlay, audio guidance, lifecycle recovery, LAN debugging, and the current LG app self-checklist. webOS Developer Mode credentials and keys remain outside source and release packages.

Continue with Building for LG webOS and TV video and sidecar captions.

Talk to us