MultipeerConnectivity中文文档
其他
2018-07-20 16:19:14
阅读次数: 0
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