|
|
@ -12,7 +12,12 @@ namespace Avalonia.iOS |
|
|
event EventHandler<ActivatedEventArgs> Deactivated; |
|
|
event EventHandler<ActivatedEventArgs> Deactivated; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public class AvaloniaAppDelegate<TApp> : UIResponder, IUIApplicationDelegate, IAvaloniaAppDelegate |
|
|
internal interface IAvaloniaAppInternalDelegate |
|
|
|
|
|
{ |
|
|
|
|
|
bool ContinueUserActivity(NSUserActivity userActivity); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public class AvaloniaAppDelegate<TApp> : UIResponder, IUIApplicationDelegate, IAvaloniaAppDelegate, IAvaloniaAppInternalDelegate |
|
|
where TApp : Application, new() |
|
|
where TApp : Application, new() |
|
|
{ |
|
|
{ |
|
|
private EventHandler<ActivatedEventArgs>? _onActivated, _onDeactivated; |
|
|
private EventHandler<ActivatedEventArgs>? _onActivated, _onDeactivated; |
|
|
@ -104,7 +109,13 @@ namespace Avalonia.iOS |
|
|
[Export("application:continueUserActivity:restorationHandler:")] |
|
|
[Export("application:continueUserActivity:restorationHandler:")] |
|
|
public bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler) |
|
|
public bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler) |
|
|
{ |
|
|
{ |
|
|
if (userActivity.ActivityType == NSUserActivityType.BrowsingWeb && Uri.TryCreate(userActivity.WebPageUrl?.ToString(), UriKind.RelativeOrAbsolute, out var uri)) |
|
|
return ((IAvaloniaAppInternalDelegate)this).ContinueUserActivity(userActivity); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
bool IAvaloniaAppInternalDelegate.ContinueUserActivity(NSUserActivity userActivity) |
|
|
|
|
|
{ |
|
|
|
|
|
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
|
|
|
// Activation using a univeral link or web browser-to-native app Handoff
|
|
|
_onActivated?.Invoke(this, new ProtocolActivatedEventArgs(uri)); |
|
|
_onActivated?.Invoke(this, new ProtocolActivatedEventArgs(uri)); |
|
|
|