From e75ccccb370b47305c6eadb321efb27c86cdd28b Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 30 十一月 2021 09:57:24 +0800
Subject: [PATCH] 合并

---
 SiriIntents/IntentHandler.cs |  134 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 134 insertions(+), 0 deletions(-)

diff --git a/SiriIntents/IntentHandler.cs b/SiriIntents/IntentHandler.cs
new file mode 100644
index 0000000..89cbeed
--- /dev/null
+++ b/SiriIntents/IntentHandler.cs
@@ -0,0 +1,134 @@
+锘縰sing System;
+using System.Collections.Generic;
+
+using Foundation;
+using HDLSceneSiri;
+using Intents;
+
+namespace SiriIntents
+{
+    // As an example, this class is set up to handle Message intents.
+    // You will want to replace this or add other intents as appropriate.
+    // The intents you wish to handle must be declared in the extension's Info.plist.
+
+    // You can test your example integration by saying things to Siri like:
+    // "Send a message using <myApp>"
+    // "<myApp> John saying hello"
+    // "Search for messages in <myApp>"
+    [Register("IntentHandler")]
+    public class IntentHandler : INExtension//, IINSendMessageIntentHandling, IINSearchForMessagesIntentHandling, IINSetMessageAttributeIntentHandling
+    {
+        protected IntentHandler(IntPtr handle) : base(handle)
+        {
+            // Note: this .ctor should not contain any initialization logic.
+        }
+
+        public override NSObject GetHandler(INIntent intent)
+        {
+            // This is the default implementation.  If you want different objects to handle different intents,
+            // you can override this and return the handler you want for that particular intent.
+
+            if (intent is HDLRunSceneIntent)
+            {
+                return new HDLRunSceneIntentHandlder();
+            }
+
+            return this;
+        }
+
+        //// Implement resolution methods to provide additional information about your intent (optional).
+        //[Export("resolveRecipientsForSearchForMessages:withCompletion:")]
+        //public void ResolveRecipients(INSendMessageIntent 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());
+        //}
+
+        //[Export("resolveContentForSendMessage:withCompletion:")]
+        //public void ResolveContent(INSendMessageIntent intent, Action<INStringResolutionResult> completion)
+        //{
+        //    var text = intent.Content;
+        //    if (!string.IsNullOrEmpty(text))
+        //        completion(INStringResolutionResult.GetSuccess(text));
+        //    else
+        //        completion(INStringResolutionResult.NeedsValue);
+        //}
+
+        //// Once resolution is completed, perform validation on the intent and provide confirmation (optional).
+        //[Export("confirmSendMessage:completion:")]
+        //public void ConfirmSendMessage(INSendMessageIntent intent, Action<INSendMessageIntentResponse> completion)
+        //{
+        //    // Verify user is authenticated and your app is ready to send a message.
+
+        //    var userActivity = new NSUserActivity("INSendMessageIntent");
+        //    var response = new INSendMessageIntentResponse(INSendMessageIntentResponseCode.Ready, userActivity);
+        //    completion(response);
+        //}
+
+        //// Handle the completed intent (required).
+        //public void HandleSendMessage(INSendMessageIntent intent, Action<INSendMessageIntentResponse> completion)
+        //{
+        //    // Implement your application logic to send a message here.
+
+        //    var userActivity = new NSUserActivity("INSendMessageIntent");
+        //    var response = new INSendMessageIntentResponse(INSendMessageIntentResponseCode.Success, userActivity);
+        //    completion(response);
+        //}
+
+        //// 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("sarah@example.com", 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);
+        //}
+
+        //public void HandleSetMessageAttribute(INSetMessageAttributeIntent intent, Action<INSetMessageAttributeIntentResponse> completion)
+        //{
+        //    // Implement your application logic to set the message attribute here.
+
+        //    var userActivity = new NSUserActivity("INSetMessageAttributeIntent");
+        //    var response = new INSetMessageAttributeIntentResponse(INSetMessageAttributeIntentResponseCode.Success, userActivity);
+        //    completion(response);
+        //}
+    }
+}

--
Gitblit v1.8.0