mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 06:51:26 +08:00
34 lines
719 B
Go
34 lines
719 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
|
|
}
|