wails/v3/pkg/application/messageprocessor_ios.go
Lea Anthony df5225e1f5 fix(v3): decouple mobile runtime logging
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-15 11:32:48 +11:00

112 lines
3 KiB
Go

//go:build ios
package application
import (
"github.com/wailsapp/wails/v3/pkg/errs"
)
const (
IOSHapticsImpact = 0
IOSDeviceInfo = 1
IOSScrollSetEnabled = 2
IOSScrollSetBounceEnabled = 3
IOSScrollSetIndicatorsEnabled = 4
IOSNavigationSetBackForwardGestures = 5
IOSLinksSetPreviewEnabled = 6
IOSDebugSetInspectableEnabled = 7
IOSUserAgentSet = 8
)
var iosMethodNames = map[int]string{
IOSHapticsImpact: "Haptics.Impact",
IOSDeviceInfo: "Device.Info",
IOSScrollSetEnabled: "Scroll.SetEnabled",
IOSScrollSetBounceEnabled: "Scroll.SetBounceEnabled",
IOSScrollSetIndicatorsEnabled: "Scroll.SetIndicatorsEnabled",
IOSNavigationSetBackForwardGestures: "Navigation.SetBackForwardGesturesEnabled",
IOSLinksSetPreviewEnabled: "Links.SetPreviewEnabled",
IOSDebugSetInspectableEnabled: "Debug.SetInspectableEnabled",
IOSUserAgentSet: "UserAgent.Set",
}
func mobileMethodName(req *RuntimeRequest) string {
if req.Object == iosRequest {
return iosMethodNames[req.Method]
}
return ""
}
func (m *MessageProcessor) processIOSMethod(req *RuntimeRequest, window Window) (any, error) {
args := req.Args.AsMap()
switch req.Method {
case IOSHapticsImpact:
style := "medium"
if s := args.String("style"); s != nil {
style = *s
}
iosHapticsImpact(style)
return unit, nil
case IOSDeviceInfo:
return iosDeviceInfo(), nil
case IOSScrollSetEnabled:
enabled := true
if b := args.Bool("enabled"); b != nil {
enabled = *b
}
iosSetScrollEnabled(enabled)
return unit, nil
case IOSScrollSetBounceEnabled:
enabled := true
if b := args.Bool("enabled"); b != nil {
enabled = *b
}
iosSetBounceEnabled(enabled)
return unit, nil
case IOSScrollSetIndicatorsEnabled:
enabled := true
if b := args.Bool("enabled"); b != nil {
enabled = *b
}
iosSetScrollIndicatorsEnabled(enabled)
return unit, nil
case IOSNavigationSetBackForwardGestures:
enabled := false
if b := args.Bool("enabled"); b != nil {
enabled = *b
}
iosSetBackForwardGesturesEnabled(enabled)
return unit, nil
case IOSLinksSetPreviewEnabled:
enabled := true
if b := args.Bool("enabled"); b != nil {
enabled = *b
}
iosSetLinkPreviewEnabled(enabled)
return unit, nil
case IOSDebugSetInspectableEnabled:
enabled := true
if b := args.Bool("enabled"); b != nil {
enabled = *b
}
iosSetInspectableEnabled(enabled)
return unit, nil
case IOSUserAgentSet:
ua := ""
if s := args.String("ua"); s != nil {
ua = *s
} else if s2 := args.String("userAgent"); s2 != nil {
ua = *s2
}
iosSetCustomUserAgent(ua)
return unit, nil
default:
return nil, errs.NewInvalidIOSCallErrorf("unknown method: %d", req.Method)
}
}
// processAndroidMethod is a stub on iOS
func (m *MessageProcessor) processAndroidMethod(req *RuntimeRequest, window Window) (any, error) {
return nil, errs.NewInvalidAndroidCallErrorf("Android methods not available on iOS")
}