我在用着多点连接框架 https://developer.apple.com/library/ios/documentation/MultipeerConnectivity/Reference/MultipeerConnectivityFramework/MultipeerConnectivityFramework.pdf在IOS7中制作一个聊天应用程序。我正在使用内置的MC浏览器视图控制器显示附近对等点的列表。
我想将广告商的个人资料信息包含在附近的同行列表中。这样浏览器就会看到一个列表,其中包含图像以及有关附近对等点的一些数据。
我认为可以通过在广告商初始化时通过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];
但是有没有办法创建一个自定义 MCBrowserViewController 在另一端显示 discoveryInfo 而不是使用内置的呢?有人有示例代码吗?
我建议创建您自己的 tableView 以从 MCBrowser 显示附近设备的列表。
我正在使用方便的方法创建一个包装器,以便您可以更轻松地填充附近的设备。https://github.com/thkien/THMultipeer 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
(斯威夫特语言)
一切都已经由图书馆处理好了。然而我还没有完成的部分是自定义 MCSession,我只完成了发现部分。希望我能在 2 - 4 周内完成它。该库采用 Objective-C 语言,因此应该向后兼容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)