INExtension.GetHandler(INIntent) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
开发人员重写此方法以返回处理程序对象(如果 intent
是其扩展可以响应的对象)。
[Foundation.Export("handlerForIntent:")]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 10, 0, ObjCRuntime.PlatformArchitecture.All, null)]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.WatchOS, 3, 2, ObjCRuntime.PlatformArchitecture.All, null)]
[ObjCRuntime.Unavailable(ObjCRuntime.PlatformName.MacOSX, ObjCRuntime.PlatformArchitecture.All, null)]
public virtual Foundation.NSObject GetHandler (Intents.INIntent intent);
abstract member GetHandler : Intents.INIntent -> Foundation.NSObject
override this.GetHandler : Intents.INIntent -> Foundation.NSObject
参数
返回
开发人员的处理程序对象或 null
(如果 intent
不是由扩展处理的话)。
实现
- 属性
注解
开发人员的处理程序对象必须实现 IIN{Intent}Handling
适合 () 此方法返回处理程序的 类型的 INIntent 接口。 例如:
class MyExtension : INExtension
{
override public NSObject GetHandler (INIntent intent)
{
if (intent is INSendMessageIntent)
{
return new MySendMessageHandler ();
}
return null;
}
}
class MySendMessageHandler : NSObject, IINSendMessageIntentHandling
{
public void HandleSendMessage (INSendMessageIntent intent, Action<INSendMessageIntentResponse> completion)
{
// ... Send a message here ...
var activity = new NSUserActivity (nameof (INSendMessageIntent));
var response = new INSendMessageIntentResponse (INSendMessageIntentResponseCode.Success, activity);
completion (response);
}
}