MCDAppServiceConnection

@interface MCDAppServiceConnection : NSObject

此类管理与特定远程应用服务的连接。

属性

appServiceInfo

@property(nonatomic, retain, nonnull) MCDAppServiceInfo* appServiceInfo;

提供有关要连接到的目标应用服务的详细信息。

requestReceived

@property(nonatomic, readonly, nonnull) MCDEvent<MCDAppServiceConnection*, MCDAppServiceRequestReceivedEventArgs*>* requestReceived;

从远程应用收到服务请求时的事件。

serviceClosed

@property(nonatomic, readonly, nonnull) MCDEvent<MCDAppServiceConnection*, MCDAppServiceClosedEventArgs*>* serviceClosed;

与应用服务的连接关闭时的事件。

构造函数

init

- (nullable instancetype)init;

创建并初始化此类的新实例。

返回

如果成功,则为初始化的 MCDAppServiceConnection ,否则为 nil。

initWithAppServiceInfo

  • (可为 null 的 instancetype) initWithAppServiceInfo: (nonnull MCDAppServiceInfo*) appServiceInfo;

参数

  • appServiceInfo 应用服务说明。

返回

如果成功,则返回初始化的 MCDAppServiceConnection ,否则返回 nil。

appServiceConnectionWithAppServiceInfo

+ (nullable instancetype)appServiceConnectionWithAppServiceInfo:(nonnull MCDAppServiceInfo*) appServiceInfo;

使用应用服务信息创建并初始化此类的新实例。

参数

  • appServiceInfo

应用服务说明。

返回

如果成功,则返回初始化的 MCDAppServiceConnection ,否则返回 nil。

方法

openRemoteAsync

- (void)openRemoteAsync:(nonnull MCDRemoteSystemConnectionRequest*)connectionRequest completion:(nonnull void (^)(MCDAppServiceConnectionStatus, NSError* _Nullable))completion;

在指定的远程设备或应用程序上打开应用服务连接。 如果连接无法打开,则会引发异常。

注意: 如果以下任一情况成立,此方法将引发异常:

  • 连接已打开或正在打开。
  • 尚未设置或清除应用服务说明。
  • 平台尚未初始化。
  • 应用已订阅连接“已收到请求”事件的方法,但在初始化平台时未提供 MCDNotificationProvider 。 所有托管方案都需要 MCDNotificationProvider

参数

  • connectionRequest

指示要面向哪个远程系统或远程应用的连接请求。

sendMessageAsync

- (void)sendMessageAsync:(nonnull NSDictionary*)message completion:(nonnull void (^)(MCDAppServiceResponse* _Nonnull, NSError* _Nullable))completion;

向远程应用服务发送消息并开始侦听响应。 此方法执行单个消息/响应,不会建立持久连接。 只有在成功打开连接后,才应调用它。

参数

  • message

要发送到应用服务的键值数据集。

关闭

- (void)close;

关闭与远程应用服务的连接。 每当客户端应用被用户或系统关闭或停止时,客户端应用都应调用此方法。

sendStatelessMessageAsync

+ (void)sendStatelessMessageAsync:(nonnull NSDictionary*)message
                     toAppService:(nonnull MCDAppServiceInfo*)appServiceInfo
                connectionRequest:(nonnull MCDRemoteSystemConnectionRequest*)connectionRequest
                       completion:(nonnull void (^)(MCDStatelessAppServiceResponse* _Nonnull, NSError* _Nullable))completion;

将消息发送到指定的远程应用服务,并开始侦听响应。

参数

  • message 要发送到应用服务的键值数据集。
  • appServiceInfo 目标应用服务的描述性信息。
  • connectionRequest 指定要连接到的应用服务的连接请求。
  • completion 异步完成回调。