5

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];

しかし、組み込みのものを使用するのではなく、反対側に DiscoveryInfo を表示するカスタム MCBrowserViewController を作成する方法はありますか? 誰かがサンプルコードを持っていますか?

4

1 に答える 1

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 であるため、下位互換性があるはずです。

于 2014-08-22T09:15:51.190 に答える