跳到主要内容
版本:下个版本 🚧

事件

Wails 运行时提供了一个统一的事件系统,其中事件可以由 Go 或 Javascript 发出或接收。 可选地,数据可以与事件一起传递。 侦听器将接收本地数据类型中的数据。

添加事件侦听器

此方法为给定的事件名称设置一个侦听器。 当一个eventName类型的事件被触发指定事件时,回调被触发。 与触发事件一起发送的任何其他数据都将传递给回调。

Go: EventsOn(ctx context.Context, eventName string, callback func(optionalData ...interface{}))
JS: EventsOn(eventName string, callback function(optionalData?: any))

移除事件侦听器

This method unregisters the listener for the given event name, optionally multiple listeneres can be unregistered via additionalEventNames.

Go: EventsOff(ctx context.Context, eventName string, additionalEventNames ...string)
JS: EventsOff(eventName string, ...additionalEventNames)

添加只触发一次的事件侦听器

此方法为给定的事件名称设置一个侦听器,但只会触发一次。

Go: EventsOnce(ctx context.Context, eventName string, callback func(optionalData ...interface{}))
JS: EventsOnce(eventName string, callback function(optionalData?: any))

添加指定对多触发次数的事件侦听器

此方法为给定的事件名称设置一个侦听器,但最多只能触发counter次。

Go: EventsOnMultiple(ctx context.Context, eventName string, callback func(optionalData ...interface{}), counter int)
JS: EventsOnMultiple(eventName string, callback function(optionalData?: any), counter int)

触发指定事件

此方法触发指定的事件。 可选数据可以与事件一起传递。 这将触发任何事件侦听器。

Go: EventsEmit(ctx context.Context, eventName string, optionalData ...interface{})
JS: EventsEmit(ctx context, optionalData function(optionalData?: any))