MultipeerConnectivity中文文档

MCAdvertiserAssistant.h


MCAdvertiserAssistant : NSObject NS_CLASS_AVAILABLE(10_10, 7_0)

MCAdvertiserAssistant是一个处理广告的便利类,向用户显示传入的邀请并处理用户的响应。

  • 方 法
方法 说明 备注 SDK版本
- (instancetype)initWithServiceType:(NSString *)serviceType NSString *> *)info session:(MCSession *)session iOS11.4
- (void)start 开启助手 iOS11.4
- (void)stop 停止助手 iOS11.4

* 属 性

属性 说明 备注 SDK版本
id<MCAdvertiserAssistantDelegate> delegate iOS11.4
MCSession *session iOS11.4
NSDictionary<NSString *, NSString *> *discoveryInfo iOS11.4
NSString *serviceType iOS11.4

MCAdvertiserAssistantDelegate协议

  • 协 议

方法 说明 备注 SDK版本
- (void)advertiserAssistantWillPresentInvitation:(MCAdvertiserAssistant *)advertiserAssistant 邀请将呈现给用户 iOS11.4
- (void)advertiserAssistantDidDismissInvitation:(MCAdvertiserAssistant *)advertiserAssistant 邀请被从屏幕上删除 iOS11.4

MCBrowserViewController : UIViewController NS_CLASS_AVAILABLE(10_10, 7_0)

MCBrowserViewController类管理系统提供的用户,用于选择要与多路径会话连接端的接口

  • 方 法
方法 说明 备注 SDK版本
- (instancetype)initWithServiceType:(NSString *)serviceType session:(MCSession *)session 使用服务类型和会话创建浏览器视图控制器 iOS11.4
- (instancetype)initWithBrowser:(MCNearbyServiceBrowser *)browser session:(MCSession *)session 使用编程浏览器和会话创建浏览器视图控制器 iOS11.4

* 属 性

属性 说明 备注 SDK版本
id<MCBrowserViewControllerDelegate> delegate iOS11.4
MCNearbyServiceBrowser *browser iOS11.4
MCSession *session iOS11.4
NSUInteger minimumNumberOfPeers 会话应该期望的最小端数量 iOS11.4
NSUInteger maximumNumberOfPeers 会话应该期望的最大端数量 iOS11.4

* 协 议

方法 说明 备注 SDK版本
- (void)browserViewControllerDidFinish:(MCBrowserViewController *)browserViewController 当用户点击完成按钮时,通知代表 iOS11.4
- (void)browserViewControllerWasCancelled:(MCBrowserViewController *)browserViewController 通知代理用户点击取消按钮 iOS11.4
- (BOOL)browserViewController:(MCBrowserViewController *)browserViewController shouldPresentNearbyPeer:(MCPeerID *)peerID withDiscoveryInfo:(nullable NSDictionary<NSString *, NSString *> *)info 通知代理人找到了端; discoveryInfo可用于确定是否应将端呈现给用户,如果应呈现端,则委托应返回YES;这种方法是可选的,如果没有实现,每个附近的端都将呈现给用户 @optional iOS11.4

MCError.h

  • 枚 举

常量 说明 备注 SDK版本
MCErrorUnknown NS_ENUM_AVAILABLE (10_10, 7_0) iOS11.4
MCErrorNotConnected NS_ENUM_AVAILABLE (10_10, 7_0) iOS11.4
MCErrorInvalidParameter NS_ENUM_AVAILABLE (10_10, 7_0) iOS11.4
MCErrorUnsupported NS_ENUM_AVAILABLE (10_10, 7_0) iOS11.4
MCErrorTimedOut NS_ENUM_AVAILABLE (10_10, 7_0) iOS11.4
MCErrorCancelled NS_ENUM_AVAILABLE (10_10, 7_0) iOS11.4
MCErrorUnavailable NS_ENUM_AVAILABLE (10_10, 7_0) iOS11.4

MCNearbyServiceAdvertiser.h

MCNearbyServiceAdvertiser : NSObject NS_CLASS_AVAILABLE(10_10, 7_0)

MCNearbyServiceAdvertiser宣传本地端的可用性,并处理来自附近同行的邀请

  • 方 法
方法 说明 备注 SDK版本
- (instancetype)initWithPeer:(MCPeerID *)myPeerID discoveryInfo:(nullable NSDictionary<NSString *, NSString *> *)info serviceType:(NSString *)serviceType iOS11.4
- (void)startAdvertisingPeer 开始向附近的浏览对手宣布存在 iOS11.4
- (void)stopAdvertisingPeer 停止向附近的浏览对手宣布存在 iOS11.4

* 属 性

属性 说明 备注 SDK版本
id<MCNearbyServiceAdvertiserDelegate> delegate iOS11.4
MCPeerID *myPeerID iOS11.4
NSDictionary<NSString *, NSString *> *discoveryInfo iOS11.4
NSString *serviceType iOS11.4

MCNearbyServiceAdvertiserDelegate协议

  • 协 议

方法 说明 备注 SDK版本
- (void)advertiser:(MCNearbyServiceAdvertiser *)advertiser didReceiveInvitationFromPeer:(MCPeerID *)peerID withContext:(nullable NSData *)context invitationHandler:(void (^)(BOOL accept, MCSession * __nullable session))invitationHandler 来电邀请请求。使用YES调用invitationHandler回调以及将邀请端连接到会话的有效会话 iOS11.4
- (void)advertiser:(MCNearbyServiceAdvertiser *)advertiser didNotStartAdvertisingPeer:(NSError *)error 由于错误,广告没有开始 @optional iOS11.4

MCNearbyServiceBrowser.h

MCNearbyServiceBrowser : NSObject NS_CLASS_AVAILABLE(10_10, 7_0)

MCNearbyServiceBrowser查找附近的端,并将它们连接到会话

  • 方 法
方法 说明 备注 SDK版本
- (instancetype)initWithPeer:(MCPeerID *)myPeerID serviceType:(NSString *)serviceType iOS11.4
- (void)startBrowsingForPeers 开始寻找附近的广告端 iOS11.4
- (void)stopBrowsingForPeers 停止寻找附近的广告端 iOS11.4

MCNearbyServiceBrowserDelegate协议

  • 协 议

方法 说明 备注 SDK版本
- (void)browser:(MCNearbyServiceBrowser *)browser foundPeer:(MCPeerID *)peerID withDiscoveryInfo:(nullable NSDictionary<NSString *, NSString *> * info iOS11.4
- (void)browser:(MCNearbyServiceBrowser *)browser lostPeer:(MCPeerID *)peerID 附近的同伴已停止投放广告 iOS11.4
- (void)browser:(MCNearbyServiceBrowser *)browser didNotStartBrowsingForPeers:(NSError *)error 浏览因错误而未启动 @optional iOS11.4

MCPeerID.h

MCPeerID : NSObject <NSCopying, NSSecureCoding> NS_CLASS_AVAILABLE(10_10, 7_0)

MCPeerID表示多路径会话中的端

  • 方 法
方法 说明 备注 SDK版本
- (instancetype)initWithDisplayName:(NSString *)myDisplayName iOS11.4

* 属 性

属性 说明 备注 SDK版本
NSString *displayName iOS11.4

MCSession.h

MCSession发送模式 NS_CLASS_AVAILABLE(10_10, 7_0)

常量 说明 备注 SDK版本
MCSessionSendDataReliable 保证可靠和有序交付 iOS11.4
MCSessionSendDataUnreliable 立即发送,无需排队,无保证交付 iOS11.4

端状态 NS_CLASS_AVAILABLE(10_10, 7_0)

常量 说明 备注 SDK版本
MCSessionStateNotConnected 未连接到会话 iOS11.4
MCSessionStateConnecting Peer正在连接到会话 iOS11.4
MCSessionStateConnected Peer已连接到会话 iOS11.4

加密首选项 NS_CLASS_AVAILABLE(10_10, 7_0)

常量 说明 备注 SDK版本
MCEncryptionOptional 会话更喜欢加密,但会接受未加密的连接 iOS11.4
MCEncryptionRequired 会话需要加密 iOS11.4
MCEncryptionNone 会话不加密 iOS11.4



常量 说明 备注 SDK版本
kMCSessionMinimumNumberOfPeers 会话中的最小对端数量 NS_CLASS_AVAILABLE(10_10, 7_0) iOS11.4
kMCSessionMaximumNumberOfPeers 会话中的最大对端数量 NS_CLASS_AVAILABLE(10_10, 7_0) iOS11.4

MCSession : NSObject NS_CLASS_AVAILABLE(10_10, 7_0)

MCSession促进多路径中所有端体之间的通信会话

  • 方 法
方法 说明 备注 SDK版本
- (instancetype)initWithPeer:(MCPeerID *)myPeerID 使用本地端的MCPeerID创建会话 iOS11.4
- (instancetype)initWithPeer:(MCPeerID *)myPeerID securityIdentity:(nullable NSArray *)identity encryptionPreference:(MCEncryptionPreference)encryptionPreference 使用安全配置创建会话。 securityIdentity参数是一个数组 [SecIdentityRef,[零个或多个额外证书]] iOS11.4
- (BOOL)sendData:(NSData *)data toPeers:(NSArray<MCPeerID *> *)peerIDs withMode:(MCSessionSendDataMode)mode error:(NSError * __nullable * __nullable)error 将数据消息发送到目标端列表 iOS11.4
- (void)disconnect 断开会话连接 iOS11.4
- (nullable NSProgress *)sendResourceAtURL:(NSURL *)resourceURL withName:(NSString *)resourceName toPeer:(MCPeerID *)peerID withCompletionHandler:(nullable void (^)(NSError * __nullable error))completionHandler 将NSURL引用的资源发送给远程端 iOS11.4
- (nullable NSOutputStream *)startStreamWithName:(NSString *)streamName toPeer:(MCPeerID *)peerID error:(NSError * __nullable * __nullable)error 使用远程端启动命名字节流。 iOS11.4

* 属 性

属性 说明 备注 SDK版本
id<MCSessionDelegate> delegate iOS11.4
MCPeerID *myPeerID iOS11.4
NSArray *securityIdentity iOS11.4
MCEncryptionPreference encryptionPreference iOS11.4
NSArray<MCPeerID *> *connectedPeers iOS11.4

MCSessionDelegate协议

  • 协 议
方法 说明 备注 SDK版本
- (void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCSessionState)state 远程端改变状态 iOS11.4
- (void)session:(MCSession *)session didReceiveData:(NSData *)data fromPeer:(MCPeerID *)peerID 从远程端接收到的数据 iOS11.4
- (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID 从远程端收到一个字节流 iOS11.4
- (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress 开始从远程端接收资源 iOS11.4
- (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID atURL:(nullable NSURL *)localURL withError:(nullable NSError *)error 从远程端接收数据完毕 iOS11.4
- (void)session:(MCSession *)session didReceiveCertificate:(nullable NSArray *)certificate fromPeer:(MCPeerID *)peerID certificateHandler:(void (^)(BOOL accept))certificateHandler 首先与同行联系,并获得有关的身份信息远程端(证书可能为零) @optional iOS11.4

MCSession (MCSessionCustomDiscovery)

如果开发者编写自己的发现代码(直接用NetService,或Bonjour C API)。而不是使用MCNearbyServiceAdvertiser/Browser或MCBrowserViewController,一个可以添加一个远程端到一个MCSeesion通过下列步骤:
1. 使用远程端交换MCPeerID。通过使用NXKeyedArchiver序列化MCPeerID对象,和远程端交换数据,用NSKeyedUnarchiver重建远程MCPeerID对象。
2. 使用远程端交换连接数据。通过调用会话的-nearbyConnectionDataForPeer:completionHandler:方法开始,并发送连接数据到远程端,一旦completionHander被调用。
3. 当远程端连接数据被接收,调用会话的-connectPeer:withNearbyConnectionData: 方法来添加远程端到会话。

  • 方 法
方法 说明 备注 SDK版本
- (void)nearbyConnectionDataForPeer:(MCPeerID *)peerID withCompletionHandler:(void (^)(NSData * __nullable= connectionData, NSError * __nullable error completionHandler 获取远程端的连接数据 iOS11.4
- (void)connectPeer:(MCPeerID *)peerID withNearbyConnectionData:(NSData *)data 收到连接数据后,将端连接到会话 iOS11.4
- (void)cancelConnectPeer:(MCPeerID *)peerID 取消与端的连接尝试 iOS11.4

猜你喜欢

转载自blog.csdn.net/philm_ios/article/details/81067948