mirror of
https://github.com/wailsapp/wails.git
synced 2026-03-15 15:15:51 +01:00
Transport layer refactor adaptations for mobile platforms: - Refactor processIOSMethod to use RuntimeRequest signature - Refactor processAndroidMethod to use RuntimeRequest signature - Add androidRequest constant (12) and handler to messageprocessor.go - Update messageprocessor_mobile_stub.go for non-mobile builds - Fix undefined windowID variable (use req.WebviewWindowID) - Add iOS event generation to tasks/events/generate.go - Add InvalidIOSCallError and InvalidAndroidCallError to errs package - Update iOS delegate and webview files with generated event handlers iOS methods refactored: Haptics.Impact, Device.Info, Scroll settings, Navigation gestures, Link previews, Debug inspector, UserAgent Android methods refactored: Haptics.Vibrate, Device.Info, Toast.Show 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
105 lines
2.9 KiB
Go
105 lines
2.9 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 (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")
|
|
}
|