【问题标题】:IOS7 Multipeer Connectivity Creating custom nearby browser list using advertiser's discovery InfoIOS7 Multipeer Connectivity 使用广告商的发现信息创建自定义附近浏览器列表
【发布时间】:2013-10-04 15:37:01
【问题描述】:

我在IOS7中使用Multipeer Connectivity Framework做一个聊天应用。我正在使用内置的 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];

但是有什么方法可以创建一个自定义的 MCBrowserViewController 来在另一端显示discoveryInfo,而不是使用内置的?谁有示例代码?

【问题讨论】:

标签: ios ios7 multipeer-connectivity


【解决方案1】:

我建议创建您自己的 tableView 以显示您的 MCBrowser 中的附近设备列表。

我正在使用方便的方法创建一个包装器,以便您可以更轻松地填充附近的设备。 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,我只完成了 Discovery 部分。希望我能在 2 - 4 周内完成它。该库在 Objective-C 中,因此它应该是向后兼容的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    相关资源
    最近更新 更多