From c15dc0d8c04310e5697c20fe6a7bc232bc28fcb5 Mon Sep 17 00:00:00 2001 From: kerams Date: Wed, 22 Jan 2025 22:21:49 +0100 Subject: [PATCH] Support activation with universal links (#18005) --- src/iOS/Avalonia.iOS/AvaloniaAppDelegate.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/iOS/Avalonia.iOS/AvaloniaAppDelegate.cs b/src/iOS/Avalonia.iOS/AvaloniaAppDelegate.cs index 99e97a5631..427a9e52eb 100644 --- a/src/iOS/Avalonia.iOS/AvaloniaAppDelegate.cs +++ b/src/iOS/Avalonia.iOS/AvaloniaAppDelegate.cs @@ -89,6 +89,19 @@ namespace Avalonia.iOS return false; } + [Export("application:continueUserActivity:restorationHandler:")] + public bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler) + { + if (userActivity.ActivityType == NSUserActivityType.BrowsingWeb && Uri.TryCreate(userActivity.WebPageUrl?.ToString(), UriKind.RelativeOrAbsolute, out var uri)) + { + // Activation using a univeral link or web browser-to-native app Handoff + _onActivated?.Invoke(this, new ProtocolActivatedEventArgs(uri)); + return true; + } + + return false; + } + private void OnEnteredBackground(NSNotification notification) { _onDeactivated?.Invoke(this, new ActivatedEventArgs(ActivationKind.Background));