IOS7 Multipeer连接使用广告客户的发现信息创build自定义附近的浏览器列表

我在IOS7中使用Multipeer连接框架来创build一个聊天应用程序。 我正在使用内置的MCBrowserViewController来显示附近的同伴列表。

我想在附近的对等列表中包含广告客户的个人资料信息。 这样浏览器就可以看到一个包含图像的列表以及附近同行的一些数据。

我认为可以通过在广告客户初始化时通过discoveryInfo传递数据来完成。 我像这样传递discoveryInfo数据:

// create Discovery Info NSArray *objects=[[NSArray alloc] initWithObjects:@"datguy",@"28", nil]; NSArray *keys = [[NSArray alloc] initWithObjects:@"Name",@"Age", nil]; self.dictionaryInfo = [[NSDictionary alloc] initWithObjects:objects forKeys:keys]; // Setup Advertiser self.advertiser = [[MCAdvertiserAssistant alloc] initWithServiceType:@"txt_msg_service" discoveryInfo:self.dictionaryInfo session:self.advertiseSession]; [self.advertiser start]; 

但有没有什么办法可以创build一个自定义的MCBrowserViewController在另一端显示discoveryInfo,而不是使用内置的? 有没有人有任何示例代码?

我build议创build你自己的tableView来显示你的MCBrowser附近的设备列表。

我正在用方便的方法创build一个包装器,以便您可以更容易地填充附近的设备。 https://github.com/thkien/THMultipeer

在开始广播之前,首先设置您的发现信息(这包括广告和浏览):

 THMultipeer.me().serviceType = "thkeen-test" THMultipeer.me().info = ["model": UIDevice.currentDevice().model] THMultipeer.me().broadcast() 

现在,您可以完全控制如何填充UI。 所有你需要做的是在你的视图控制器中实现委托:

 - (void)multipeerNewPeerFound:(MCPeerID*)peerID withName:(NSString*)name andInfo:(NSDictionary*)info atIndex:(NSInteger)index; - (void)multipeerPeerLost:(MCPeerID*)peerID atIndex:(NSInteger)index; - (void)multipeerAllPeersRemoved; 

如果你想获得整个对等列表,只需调用: THMultipeer.me().peers (Swift语言)

一切已经由图书馆处理了。 然而,我没有做的部分是自定义MCSession,我只完成了发现部分。 希望我能在2 – 4周内完成。 该库在Objective-C中,因此它应该是向后兼容的。