public override bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler) { if (userActivity.ActivityType == CSSearchableItem.ActionType) { #region Spotlight var uuid = userActivity.UserInfo.ObjectForKey(CSSearchableItem.ActivityIdentifier); System.Console.WriteLine("Show the page for " + uuid); var restaurantName = SearchModel.Lookup(uuid.ToString()); System.Console.WriteLine("which is " + restaurantName); MessagingCenter.Send <RestaurantGuide.App, string> (App.Current as RestaurantGuide.App, "show", restaurantName); #endregion } else { #region NSUserActivity // dang it, the userInfo is blank unless I hack the UserActivity_iOS.Start() method // https://forums.developer.apple.com/thread/9690 if (userActivity.ActivityType == ActivityTypes.View) { var uid = "0"; if (userActivity.UserInfo.Count == 0) { // new item } else { uid = userActivity.UserInfo.ObjectForKey(ActivityKeys.Id).ToString(); if (uid == "0") { Console.WriteLine("No userinfo found for " + ActivityTypes.View); } else { Console.WriteLine("Should display id " + uid); // handled in DetailViewController.RestoreUserActivityState } } ContinueNavigation(uid); } if (userActivity.ActivityType == CSSearchableItem.ActionType) { var uid = userActivity.UserInfo.ObjectForKey(CSSearchableItem.ActivityIdentifier).ToString(); System.Console.WriteLine("Show the detail for id:" + uid); ContinueNavigation(uid); } completionHandler(null); // TODO: display UI in Forms somehow #endregion } return(true); }
void ContinueNavigation(string uid) { Console.WriteLine("gggggggggg ContinueNavigation"); // TODO: display UI in Forms somehow System.Console.WriteLine("Show the page for " + uid); var restaurantName = ""; if (uid == "-1") { restaurantName = SearchModel.Random(); } else { restaurantName = SearchModel.Lookup(uid.ToString()); } System.Console.WriteLine("which is " + restaurantName); MessagingCenter.Send <RestaurantGuide.App, string> (App.Current as RestaurantGuide.App, "show", restaurantName); }