5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 15:30:37 +08:00
wails/v3/examples/plugins/main.go
2023-03-18 08:11:36 +11:00

53 lines
935 B
Go

package main
import (
"embed"
_ "embed"
"github.com/wailsapp/wails/v3/pkg/application"
"log"
"math/rand"
)
//go:embed assets/*
var assets embed.FS
type RandomNumberPlugin struct{}
func (r *RandomNumberPlugin) Name() string {
return "Random Number Plugin"
}
func (r *RandomNumberPlugin) Init(_ *application.App) error {
return nil
}
func (r *RandomNumberPlugin) Call(args []any) (any, error) {
return rand.Intn(100), nil
}
func main() {
app := application.New(application.Options{
Name: "Plugin Demo",
Description: "A demo of the plugins API",
Mac: application.MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: true,
},
Plugins: map[string]application.Plugin{
"random": &RandomNumberPlugin{},
},
Assets: application.AssetOptions{
FS: assets,
},
})
window := app.NewWebviewWindow()
window.ToggleDevTools()
err := app.Run()
if err != nil {
log.Fatal(err.Error())
}
}