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);
        }
예제 #2
0
        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);
        }