diff options
author | Jason Smith <jason.smith@xamarin.com> | 2016-04-24 12:25:26 -0400 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2016-04-24 12:25:26 -0400 |
commit | 5907152c50ee2c658b266f2804e6b383bb15a6f1 (patch) | |
tree | 9beb907623359723456c5c03b08922bebc4f41f3 /Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs | |
parent | feac1ba3ed6df5e27b3fa2076bd15c190cbacd1c (diff) | |
download | xamarin-forms-5907152c50ee2c658b266f2804e6b383bb15a6f1.tar.gz xamarin-forms-5907152c50ee2c658b266f2804e6b383bb15a6f1.tar.bz2 xamarin-forms-5907152c50ee2c658b266f2804e6b383bb15a6f1.zip |
Evolve feature branch (#117)
* Initial import of evolve features
* [Android] Add Xamarin.Forms.Platform.Android.AppLinks project
* [iOS] Fix issues with c# 6 features on iOS AppLinks
* Added naive stanza to update-docs-windows.bat to produce Pages docs. Not tested. (#69)
* Update packages
* Add AppLinks android nuspec and fix linker issues
* Fix build
* Fix nusepc
* Fix nuspec
* Update android support nugets to 23.2.1
* Update Xamarin.UITest
* Add CardView
* [iOS] Fix app link for CoreSpotlight
* [Android] Update AppLinks android support libs
* Add Newtonsoft.Json dependency to nuspec
* Fix NRE when setting ControlTemplate to null
* Move to ModernHttpClient for download
* Try fix build
* Preserve android app links
* Fix margin issue
* General coding and simple fixes
Diffstat (limited to 'Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs')
-rw-r--r-- | Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs b/Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs index a4342473..78dc6dca 100644 --- a/Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs +++ b/Xamarin.Forms.Platform.iOS/FormsApplicationDelegate.cs @@ -5,10 +5,12 @@ using System.Text; #if __UNIFIED__ using Foundation; using UIKit; +using CoreSpotlight; #else using MonoTouch.Foundation; using MonoTouch.UIKit; +using MonoTouch.CoreSpotlight; #endif namespace Xamarin.Forms.Platform.iOS @@ -25,6 +27,7 @@ namespace Xamarin.Forms.Platform.iOS public override bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler) { + CheckForAppLink(userActivity); return true; } @@ -77,6 +80,7 @@ namespace Xamarin.Forms.Platform.iOS public override void UserActivityUpdated(UIApplication application, NSUserActivity userActivity) { + CheckForAppLink(userActivity); } // from background to foreground, not yet active @@ -121,6 +125,7 @@ namespace Xamarin.Forms.Platform.iOS Application.Current = application; _application = application; + (application as IApplicationController)?.SetAppIndexingProvider(new IOSAppIndexingProvider()); application.PropertyChanged += ApplicationOnPropertyChanged; } @@ -131,6 +136,29 @@ namespace Xamarin.Forms.Platform.iOS UpdateMainPage(); } + void CheckForAppLink(NSUserActivity userActivity) + { + var strLink = string.Empty; + + switch (userActivity.ActivityType) + { + case "NSUserActivityTypeBrowsingWeb": + strLink = userActivity.WebPageUrl.AbsoluteString; + break; + case "com.apple.corespotlightitem": + if (userActivity.UserInfo.ContainsKey(CSSearchableItem.ActivityIdentifier)) + strLink = userActivity.UserInfo.ObjectForKey(CSSearchableItem.ActivityIdentifier).ToString(); + break; + default: + if (userActivity.UserInfo.ContainsKey(new NSString("link"))) + strLink = userActivity.UserInfo[new NSString("link")].ToString(); + break; + } + + if (!string.IsNullOrEmpty(strLink)) + _application.SendOnAppLinkRequestReceived(new Uri(strLink)); + } + void SetMainPage() { UpdateMainPage(); |