From 38a11bcfaf3cf703e38201c9c6cd6631354ea243 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 30 十一月 2021 09:55:09 +0800
Subject: [PATCH] Siri功能完成
---
SiriIntentsUI/IntentViewController.cs | 100 ++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 77 insertions(+), 23 deletions(-)
diff --git a/SiriIntentsUI/IntentViewController.cs b/SiriIntentsUI/IntentViewController.cs
index 44ac701..18864b6 100644
--- a/SiriIntentsUI/IntentViewController.cs
+++ b/SiriIntentsUI/IntentViewController.cs
@@ -1,51 +1,105 @@
锘縰sing System;
using CoreGraphics;
+using Foundation;
+using HDLSceneSiri;
+//using HDLSceneSiri;
using Intents;
using IntentsUI;
using UIKit;
namespace SiriIntentsUI
{
- // As an example, this extension's Info.plist has been configured to handle interactions for INSendMessageIntent.
- // You will want to replace this or add other intents as appropriate.
- // The intents whose interactions you wish to handle must be declared in the extension's Info.plist.
-
- // You can test this example integration by saying things to Siri like:
- // "Send a message using <myApp>"
public partial class IntentViewController : UIViewController, IINUIHostedViewControlling
{
protected IntentViewController(IntPtr handle) : base(handle)
{
- // Note: this .ctor should not contain any initialization logic.
}
- public override void ViewDidLoad()
- {
- base.ViewDidLoad();
+ //public override void ViewDidLoad()
+ //{
+ // base.ViewDidLoad();
- // Do any required interface initialization here.
- }
+ // // Do any required interface here.
+ //}
- public override void DidReceiveMemoryWarning()
- {
- // Releases the view if it doesn't have a superview.
- base.DidReceiveMemoryWarning();
+ //public override void DidReceiveMemoryWarning()
+ //{
+ // // Releases the view if it doesn't have a superview.
+ // base.DidReceiveMemoryWarning();
- // Release any cached data, images, etc that aren't in use.
- }
-
+ // // Release any cached data, images, etc that aren't in use.
+ //}
+ [Export("configureWithInteraction:context:completion:")]
public void Configure(INInteraction interaction, INUIHostedViewContext context, Action<CGSize> completion)
{
- // Do configuration here, including preparing views and calculating a desired size for presentation.
-
- if (completion != null)
- completion(DesiredSize());
+ throw new NotImplementedException();
}
CGSize DesiredSize()
{
return ExtensionContext.GetHostedViewMaximumAllowedSize();
}
+
+
+
+
+ [Export("configureViewForParameters:ofInteraction:interactiveBehavior:context:completion:")]
+ public void ConfigureView(
+ NSSet<INParameter> parameters,
+ INInteraction interaction,
+ INUIInteractiveBehavior interactiveBehavior,
+ INUIHostedViewContext context,
+ INUIHostedViewControllingConfigureViewHandler completion)
+ {
+
+
+
+
+ HDLRunSceneIntentResponse rsp = interaction.IntentResponse as HDLRunSceneIntentResponse;
+ this.lblMsg.Text = rsp.SuccessMessage;
+ this.lblMsg.TextColor = UIColor.Black;
+ this.lblMsg.Frame = new CGRect(0, 0, DesiredSize().Width, 100);
+ CGSize size = new CGSize(DesiredSize().Width, 100);
+
+
+ if (completion != null)
+ completion(true, parameters, size);
+
+
+ //var intent = interaction.Intent as OrderSoupIntent;
+ //if (intent is null)
+ //{
+ // completion(false, new NSSet<INParameter>(), CGSize.Empty);
+ //}
+
+ //var order = Order.FromOrderSoupIntent(intent);
+
+ //foreach (var view in View.Subviews)
+ //{
+ // view.RemoveFromSuperview();
+ //}
+
+ //// Different UIs can be displayed depending if the intent is in the
+ //// confirmation phase or the handle phase.
+ //var desiredSize = CGSize.Empty;
+
+ //if (interaction.IntentHandlingStatus == INIntentHandlingStatus.Ready)
+ //{
+ // desiredSize = DisplayInvoice(order, intent);
+ //}
+ //else if (interaction.IntentHandlingStatus == INIntentHandlingStatus.Success)
+ //{
+ // var response = interaction.IntentResponse as OrderSoupIntentResponse;
+ // if (!(response is null))
+ // {
+ // desiredSize = DisplayOrderConfirmation(order, intent, response);
+ // }
+ //}
+
+ //completion(true, parameters, desiredSize);
+ }
+
+
}
}
--
Gitblit v1.8.0