5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-03 06:51:26 +08:00
wails/v2/internal/frontend/dispatcher/events.go

34 lines
716 B
Go

package dispatcher
import (
"encoding/json"
"errors"
"github.com/wailsapp/wails/v2/internal/frontend"
)
type EventMessage struct {
Name string `json:"name"`
Data []interface{} `json:"data"`
}
func (d *Dispatcher) processEventMessage(message string, sender frontend.Frontend) (string, error) {
if len(message) < 3 {
return "", errors.New("Invalid Event Message: " + message)
}
switch message[1] {
case 'E':
var eventMessage EventMessage
err := json.Unmarshal([]byte(message[2:]), &eventMessage)
if err != nil {
return "", err
}
go d.events.Notify(sender, eventMessage.Name, eventMessage.Data)
case 'X':
eventName := message[2:]
go d.events.Off(eventName)
}
return "", nil
}