at backyard

Color my life with the chaos of trouble.

WailsでのGoとJS側でのEventsのやりとりについて

基本的に下記を見ればOK

wails.io

イベントの送り方は EventsOn とか EventsOnceとか複数あるが、ひとまずどうやって送るかのサンプルだけ下記に書き残しておく。

GoからJS側にイベントを送る場合

Goでは下記のようにEventsを設定する
※コードはかなりいい加減に省略しています

import "github.com/wailsapp/wails/v2/pkg/runtime"

// a.ctx: context.Context
runtime.EventsEmit(a.ctx, "testevent", "テスト)

そしてJS側では下記のようにEventsを受け取る。

import { EventsOn } from "../wailsjs/runtime/runtime";

EventsOn("testevent", (msg: string) => {
    console.log(msg)
});

JSからGo側にイベントを送る場合

JS側では下記のようにEventsを設定する

import { EventsEmit } from "../wailsjs/runtime/runtime";

EventsEmit("testevent", "テスト")

Goでは下記のようにEventsを受け取る。

import "github.com/wailsapp/wails/v2/pkg/runtime"

// a.ctx: context.Context
runtime.EventsOn(a.ctx, "testevent", func(msg ...interface{}) {
    fmt.Println(msg)
})

以上。