@eryx/webui Module

JSON

WebUi is a simple wrapper on top of webview that provides utilities for message passing and event binding.

local ui = webui.new("IPC Demo")

ui.win:navigateToString(fs.open("web.html")):read())
ui.win:show()

ui:on("chat"):connect(function(data)
	ui:post("chat", { message = `Echo: {data.message}` })
end)

ui:onJsEvent("#clickme", "click"):connect(function()
	print("Button clicked")
end)

Summary

Classes

_handlers: { { event: string, sig: Signal.Signal<{}> } }
_eventHandlers: { Signal.Signal<()> }
WebUi.new(title: string)WebUi
WebUi:onJsEvent(selector: string, event: string)Signal.Signal<()>
WebUi:on(event: string)Signal.Signal<{}>
WebUi:post(event: string, data: { [any]: any }?)()

API Reference

Classes

WebUi

Properties

The WebView window

_handlers: { { event: string, sig: Signal.Signal<{}> } }
_eventHandlers: { Signal.Signal<()> }

WebUi.new

Create a new WebUi

WebUi.new(title: string)WebUi

Parameters

title: string

The window title

WebUi:onJsEvent

Bind to a JavaScript event

WebUi:onJsEvent(selector: string, event: string)Signal.Signal<()>

Parameters

selector: string

CSS element selector, such as "#foo"

event: string

JavaScript event, such as "click"

Returns

Signal.Signal<()>

A signal that fires every time the event occurs

WebUi:on

Bind to an eryx.post event

WebUi:on(event: string)Signal.Signal<{}>

Parameters

event: string

The event to bind to

Returns

Signal.Signal<{}>

A signal that fires every time the event is posted

WebUi:post

Post a message to an eryx.on listener

WebUi:post(event: string, data: { [any]: any }?)()

Parameters

event: string

The event to send

data: { [any]: any }?

The data to post