greetservice.go 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. // ============================================================================
  2. // greetservice.go — Wails 示例服务
  3. //
  4. // GreetService 用于验证 Go↔JS 绑定链路,提供 Greet / GreetMany 示例方法。
  5. // ============================================================================
  6. package main
  7. import "strings"
  8. // GreetService 是一个暴露给前端调用的示例服务。
  9. // 在 main.go 中通过 application.NewService(&GreetService{}) 注册后,
  10. // Wails 会自动为其生成 JS/TS 绑定(frontend/bindings 目录),
  11. // 前端即可像调用本地函数一样直接调用 Greet 方法(底层通过 IPC 桥接)。
  12. type GreetService struct{}
  13. // Greet 返回对 name 的问候语。
  14. //
  15. // 调用链:前端 main.js 的 doGreet() → GreetService.Greet(name) → 本方法。
  16. // 前端调用示例:GreetService.Greet("张三") → 返回 "您好 张三!"
  17. // 参数与返回值由 Wails 自动完成 Go 与 JS 之间的序列化/反序列化。
  18. func (g *GreetService) Greet(name string) string {
  19. return "您好 " + name + "!" // 拼接并返回问候语,由 Wails 自动序列化后回传给前端
  20. }
  21. // GreetMany 返回对一批 name 的问候语(示例方法,演示切片参数的绑定与序列化)。
  22. func (g *GreetService) GreetMany(names []string) string {
  23. greetings := make([]string, len(names))
  24. for i, name := range names {
  25. greetings[i] = name
  26. }
  27. return "您们好 " + strings.Join(greetings, ", ") + " !"
  28. }