From f26dfd48aa7bf4c194863cc3b3f47d38bc8a2d57 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期五, 26 十一月 2021 09:20:45 +0800
Subject: [PATCH] 2021-11-26 1.更新

---
 Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/ApiDefinition.cs               |   12 +-
 HDLSceneSiriDemo/HDLSceneSiri/IntentHandler.m                                  |  178 ++++++++++++++++++++++----------------------
 Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri.csproj |    2 
 Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/Structs.cs                     |    2 
 4 files changed, 98 insertions(+), 96 deletions(-)

diff --git a/HDLSceneSiriDemo/HDLSceneSiri/IntentHandler.m b/HDLSceneSiriDemo/HDLSceneSiri/IntentHandler.m
index 252fa34..96a5c81 100644
--- a/HDLSceneSiriDemo/HDLSceneSiri/IntentHandler.m
+++ b/HDLSceneSiriDemo/HDLSceneSiri/IntentHandler.m
@@ -18,7 +18,7 @@
 // "<myApp> John saying hello"
 // "Search for messages in <myApp>"
 
-@interface IntentHandler () <INSendMessageIntentHandling, INSearchForMessagesIntentHandling, INSetMessageAttributeIntentHandling>
+@interface IntentHandler ()
 
 @end
 
@@ -35,93 +35,93 @@
     
     return self;
 }
-
-#pragma mark - INSendMessageIntentHandling
-
-// Implement resolution methods to provide additional information about your intent (optional).
-- (void)resolveRecipientsForSendMessage:(INSendMessageIntent *)intent with:(void (^)(NSArray<INSendMessageRecipientResolutionResult *> *resolutionResults))completion {
-    NSArray<INPerson *> *recipients = intent.recipients;
-    // If no recipients were provided we'll need to prompt for a value.
-    if (recipients.count == 0) {
-        completion(@[[INSendMessageRecipientResolutionResult needsValue]]);
-        return;
-    }
-    NSMutableArray<INSendMessageRecipientResolutionResult *> *resolutionResults = [NSMutableArray array];
-    
-    for (INPerson *recipient in recipients) {
-        NSArray<INPerson *> *matchingContacts = @[recipient]; // Implement your contact matching logic here to create an array of matching contacts
-        if (matchingContacts.count > 1) {
-            // We need Siri's help to ask user to pick one from the matches.
-            [resolutionResults addObject:[INSendMessageRecipientResolutionResult disambiguationWithPeopleToDisambiguate:matchingContacts]];
-
-        } else if (matchingContacts.count == 1) {
-            // We have exactly one matching contact
-            [resolutionResults addObject:[INSendMessageRecipientResolutionResult successWithResolvedPerson:recipient]];
-        } else {
-            // We have no contacts matching the description provided
-            [resolutionResults addObject:[INSendMessageRecipientResolutionResult unsupported]];
-        }
-    }
-    completion(resolutionResults);
-}
-
-- (void)resolveContentForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(INStringResolutionResult *resolutionResult))completion {
-    NSString *text = intent.content;
-    if (text && ![text isEqualToString:@""]) {
-        completion([INStringResolutionResult successWithResolvedString:text]);
-    } else {
-        completion([INStringResolutionResult needsValue]);
-    }
-}
-
-// Once resolution is completed, perform validation on the intent and provide confirmation (optional).
-
-- (void)confirmSendMessage:(INSendMessageIntent *)intent completion:(void (^)(INSendMessageIntentResponse *response))completion {
-    // Verify user is authenticated and your app is ready to send a message.
-    
-    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INSendMessageIntent class])];
-    INSendMessageIntentResponse *response = [[INSendMessageIntentResponse alloc] initWithCode:INSendMessageIntentResponseCodeReady userActivity:userActivity];
-    completion(response);
-}
-
-// Handle the completed intent (required).
-
-- (void)handleSendMessage:(INSendMessageIntent *)intent completion:(void (^)(INSendMessageIntentResponse *response))completion {
-    // Implement your application logic to send a message here.
-    
-    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INSendMessageIntent class])];
-    INSendMessageIntentResponse *response = [[INSendMessageIntentResponse alloc] initWithCode:INSendMessageIntentResponseCodeSuccess userActivity:userActivity];
-    completion(response);
-}
-
-// Implement handlers for each intent you wish to handle.  As an example for messages, you may wish to also handle searchForMessages and setMessageAttributes.
-
-#pragma mark - INSearchForMessagesIntentHandling
-
-- (void)handleSearchForMessages:(INSearchForMessagesIntent *)intent completion:(void (^)(INSearchForMessagesIntentResponse *response))completion {
-    // Implement your application logic to find a message that matches the information in the intent.
-    
-    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INSearchForMessagesIntent class])];
-    INSearchForMessagesIntentResponse *response = [[INSearchForMessagesIntentResponse alloc] initWithCode:INSearchForMessagesIntentResponseCodeSuccess userActivity:userActivity];
-    // Initialize with found message's attributes
-    response.messages = @[[[INMessage alloc]
-        initWithIdentifier:@"identifier"
-        content:@"I am so excited about SiriKit!"
-        dateSent:[NSDate date]
-        sender:[[INPerson alloc] initWithPersonHandle:[[INPersonHandle alloc] initWithValue:@"sarah@example.com" type:INPersonHandleTypeEmailAddress] nameComponents:nil displayName:@"Sarah" image:nil contactIdentifier:nil customIdentifier:nil]
-        recipients:@[[[INPerson alloc] initWithPersonHandle:[[INPersonHandle alloc] initWithValue:@"+1-415-555-5555" type:INPersonHandleTypePhoneNumber] nameComponents:nil displayName:@"John" image:nil contactIdentifier:nil customIdentifier:nil]]
-    ]];
-    completion(response);
-}
-
-#pragma mark - INSetMessageAttributeIntentHandling
-
-- (void)handleSetMessageAttribute:(INSetMessageAttributeIntent *)intent completion:(void (^)(INSetMessageAttributeIntentResponse *response))completion {
-    // Implement your application logic to set the message attribute here.
-    
-    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INSetMessageAttributeIntent class])];
-    INSetMessageAttributeIntentResponse *response = [[INSetMessageAttributeIntentResponse alloc] initWithCode:INSetMessageAttributeIntentResponseCodeSuccess userActivity:userActivity];
-    completion(response);
-}
+//
+//#pragma mark - INSendMessageIntentHandling
+//
+//// Implement resolution methods to provide additional information about your intent (optional).
+//- (void)resolveRecipientsForSendMessage:(INSendMessageIntent *)intent with:(void (^)(NSArray<INSendMessageRecipientResolutionResult *> *resolutionResults))completion {
+//    NSArray<INPerson *> *recipients = intent.recipients;
+//    // If no recipients were provided we'll need to prompt for a value.
+//    if (recipients.count == 0) {
+//        completion(@[[INSendMessageRecipientResolutionResult needsValue]]);
+//        return;
+//    }
+//    NSMutableArray<INSendMessageRecipientResolutionResult *> *resolutionResults = [NSMutableArray array];
+//    
+//    for (INPerson *recipient in recipients) {
+//        NSArray<INPerson *> *matchingContacts = @[recipient]; // Implement your contact matching logic here to create an array of matching contacts
+//        if (matchingContacts.count > 1) {
+//            // We need Siri's help to ask user to pick one from the matches.
+//            [resolutionResults addObject:[INSendMessageRecipientResolutionResult disambiguationWithPeopleToDisambiguate:matchingContacts]];
+//
+//        } else if (matchingContacts.count == 1) {
+//            // We have exactly one matching contact
+//            [resolutionResults addObject:[INSendMessageRecipientResolutionResult successWithResolvedPerson:recipient]];
+//        } else {
+//            // We have no contacts matching the description provided
+//            [resolutionResults addObject:[INSendMessageRecipientResolutionResult unsupported]];
+//        }
+//    }
+//    completion(resolutionResults);
+//}
+//
+//- (void)resolveContentForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(INStringResolutionResult *resolutionResult))completion {
+//    NSString *text = intent.content;
+//    if (text && ![text isEqualToString:@""]) {
+//        completion([INStringResolutionResult successWithResolvedString:text]);
+//    } else {
+//        completion([INStringResolutionResult needsValue]);
+//    }
+//}
+//
+//// Once resolution is completed, perform validation on the intent and provide confirmation (optional).
+//
+//- (void)confirmSendMessage:(INSendMessageIntent *)intent completion:(void (^)(INSendMessageIntentResponse *response))completion {
+//    // Verify user is authenticated and your app is ready to send a message.
+//    
+//    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INSendMessageIntent class])];
+//    INSendMessageIntentResponse *response = [[INSendMessageIntentResponse alloc] initWithCode:INSendMessageIntentResponseCodeReady userActivity:userActivity];
+//    completion(response);
+//}
+//
+//// Handle the completed intent (required).
+//
+//- (void)handleSendMessage:(INSendMessageIntent *)intent completion:(void (^)(INSendMessageIntentResponse *response))completion {
+//    // Implement your application logic to send a message here.
+//    
+//    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INSendMessageIntent class])];
+//    INSendMessageIntentResponse *response = [[INSendMessageIntentResponse alloc] initWithCode:INSendMessageIntentResponseCodeSuccess userActivity:userActivity];
+//    completion(response);
+//}
+//
+//// Implement handlers for each intent you wish to handle.  As an example for messages, you may wish to also handle searchForMessages and setMessageAttributes.
+//
+//#pragma mark - INSearchForMessagesIntentHandling
+//
+//- (void)handleSearchForMessages:(INSearchForMessagesIntent *)intent completion:(void (^)(INSearchForMessagesIntentResponse *response))completion {
+//    // Implement your application logic to find a message that matches the information in the intent.
+//    
+//    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INSearchForMessagesIntent class])];
+//    INSearchForMessagesIntentResponse *response = [[INSearchForMessagesIntentResponse alloc] initWithCode:INSearchForMessagesIntentResponseCodeSuccess userActivity:userActivity];
+//    // Initialize with found message's attributes
+//    response.messages = @[[[INMessage alloc]
+//        initWithIdentifier:@"identifier"
+//        content:@"I am so excited about SiriKit!"
+//        dateSent:[NSDate date]
+//        sender:[[INPerson alloc] initWithPersonHandle:[[INPersonHandle alloc] initWithValue:@"sarah@example.com" type:INPersonHandleTypeEmailAddress] nameComponents:nil displayName:@"Sarah" image:nil contactIdentifier:nil customIdentifier:nil]
+//        recipients:@[[[INPerson alloc] initWithPersonHandle:[[INPersonHandle alloc] initWithValue:@"+1-415-555-5555" type:INPersonHandleTypePhoneNumber] nameComponents:nil displayName:@"John" image:nil contactIdentifier:nil customIdentifier:nil]]
+//    ]];
+//    completion(response);
+//}
+//
+//#pragma mark - INSetMessageAttributeIntentHandling
+//
+//- (void)handleSetMessageAttribute:(INSetMessageAttributeIntent *)intent completion:(void (^)(INSetMessageAttributeIntentResponse *response))completion {
+//    // Implement your application logic to set the message attribute here.
+//    
+//    NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INSetMessageAttributeIntent class])];
+//    INSetMessageAttributeIntentResponse *response = [[INSetMessageAttributeIntentResponse alloc] initWithCode:INSetMessageAttributeIntentResponseCodeSuccess userActivity:userActivity];
+//    completion(response);
+//}
 
 @end
diff --git a/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/ApiDefinition.cs b/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/ApiDefinition.cs
index 2905663..38b1264 100644
--- a/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/ApiDefinition.cs
+++ b/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/ApiDefinition.cs
@@ -45,7 +45,7 @@
 	}
 
 	// @interface HDLRunSceneIntent : INIntent
-	[Watch(5, 0), NoTV, Mac(11, 0), iOS(12, 0)]
+	//[Watch(5, 0), NoTV, Mac(11, 0), iOS(12, 0)]
 	[BaseType(typeof(INIntent))]
 	interface HDLRunSceneIntent
 	{
@@ -68,9 +68,11 @@
   protocol, then [Model] is redundant and will generate code that will never
   be used.
 */
-	[Watch(5, 0), NoTV, Mac(11, 0), iOS(12, 0)]
-	[Protocol]
-	[BaseType(typeof(NSObject))]
+
+	//[Watch(5, 0), NoTV, Mac(11, 0), iOS(12, 0)]
+	//[Protocol]
+    [Protocol, Model]
+    [BaseType(typeof(NSObject))]
 	interface HDLRunSceneIntentHandling
 	{
 		// @required -(void)handleHDLRunScene:(HDLRunSceneIntent * _Nonnull)intent completion:(void (^ _Nonnull)(HDLRunSceneIntentResponse * _Nonnull))completion __attribute__((swift_name("handle(intent:completion:)")));
@@ -84,7 +86,7 @@
 	}
 
 	// @interface HDLRunSceneIntentResponse : INIntentResponse
-	[Watch(5, 0), NoTV, Mac(11, 0), iOS(12, 0)]
+	//[Watch(5, 0), NoTV, Mac(11, 0), iOS(12, 0)]
 	[BaseType(typeof(INIntentResponse))]
 	[DisableDefaultCtor]
 	interface HDLRunSceneIntentResponse
diff --git a/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri.csproj b/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri.csproj
index 4f73be2..e691dee 100644
--- a/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri.csproj
+++ b/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri.csproj
@@ -48,7 +48,7 @@
   <ItemGroup>
     <NativeReference Include="Library\libHDLSceneSiri.a">
       <Kind>Static</Kind>
-      <Frameworks>Intents IntentsUI</Frameworks>
+      <Frameworks>Intents IntentsUI Foundation</Frameworks>
     </NativeReference>
   </ItemGroup>
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
diff --git a/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/Structs.cs b/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/Structs.cs
index 0964c4c..7fa07f7 100644
--- a/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/Structs.cs
+++ b/Shared.IOS.HDLSceneSiri/Shared.IOS.HDLSceneSiri/Structs.cs
@@ -2,7 +2,7 @@
 
 namespace HDLSceneSiri
 {
-	[Watch(5, 0), NoTV, Mac(11, 0), iOS(12, 0)]
+	//[Watch(5, 0), NoTV, Mac(11, 0), iOS(12, 0)]
 	[Native]
 	public enum HDLRunSceneIntentResponseCode : long
 	{

--
Gitblit v1.8.0