Esempio n. 1
0
        public void ResolveRecipients(INSearchForMessagesIntent intent, Action <INPersonResolutionResult[]> completion)
        {
            var recipients = intent.Recipients;

            // If no recipients were provided we'll need to prompt for a value.
            if (recipients.Length == 0)
            {
                completion(new INPersonResolutionResult[] { INPersonResolutionResult.NeedsValue });
                return;
            }

            var resolutionResults = new List <INPersonResolutionResult> ();

            foreach (var recipient in recipients)
            {
                var matchingContacts = new INPerson[] { recipient };                 // Implement your contact matching logic here to create an array of matching contacts
                if (matchingContacts.Length > 1)
                {
                    // We need Siri's help to ask user to pick one from the matches.
                    resolutionResults.Add(INPersonResolutionResult.GetDisambiguation(matchingContacts));
                }
                else if (matchingContacts.Length == 1)
                {
                    // We have exactly one matching contact
                    resolutionResults.Add(INPersonResolutionResult.GetSuccess(recipient));
                }
                else
                {
                    // We have no contacts matching the description provided
                    resolutionResults.Add(INPersonResolutionResult.Unsupported);
                }
            }

            completion(resolutionResults.ToArray());
        }
Esempio n. 2
0
        // Implement handlers for each intent you wish to handle.
        // As an example for messages, you may wish to add HandleSearchForMessages and HandleSetMessageAttribute.

        public void HandleSearchForMessages(INSearchForMessagesIntent intent, Action <INSearchForMessagesIntentResponse> completion)
        {
            // Implement your application logic to find a message that matches the information in the intent.

            var userActivity = new NSUserActivity("INSearchForMessagesIntent");
            var response     = new INSearchForMessagesIntentResponse(INSearchForMessagesIntentResponseCode.Success, userActivity);

            // Initialize with found message's attributes
            var sender    = new INPerson(new INPersonHandle("*****@*****.**", INPersonHandleType.EmailAddress), null, "Sarah", null, null, null);
            var recipient = new INPerson(new INPersonHandle("+1-415-555-5555", INPersonHandleType.PhoneNumber), null, "John", null, null, null);
            var message   = new INMessage("identifier", "I am so excited about SiriKit!", NSDate.Now, sender, new INPerson[] { recipient });

            response.Messages = new INMessage[] { message };
            completion(response);
        }
Esempio n. 3
0
		// Implement handlers for each intent you wish to handle.
		// As an example for messages, you may wish to add HandleSearchForMessages and HandleSetMessageAttribute.

		public void HandleSearchForMessages (INSearchForMessagesIntent intent, Action<INSearchForMessagesIntentResponse> completion)
		{
			// Implement your application logic to find a message that matches the information in the intent.

			var userActivity = new NSUserActivity (nameof (INSearchForMessagesIntent));
			var response = new INSearchForMessagesIntentResponse (INSearchForMessagesIntentResponseCode.Success, userActivity);

			// Initialize with found message's attributes
			var sender = new INPerson (new INPersonHandle ("*****@*****.**", INPersonHandleType.EmailAddress), null, "Sarah", null, null, null);
			var recipient = new INPerson (new INPersonHandle ("+1-415-555-5555", INPersonHandleType.PhoneNumber), null, "John", null, null, null);
			var message = new INMessage ("identifier", "I am so excited about SiriKit!", NSDate.Now, sender, new INPerson [] { recipient });
			response.Messages = new INMessage [] { message };
			completion (response);
		}