2013-10-04 4 views
5

Używam Multipeer Connectivity Framework w IOS7, aby utworzyć aplikację do czatowania. I używam wbudowanego MCBrowserViewController, aby wyświetlić listę pobliskich rówieśników.Łączność wielościenna IOS7 Tworzenie niestandardowej listy przeglądarki w pobliżu za pomocą wykrywania reklamodawcy Informacje

Chciałbym dołączyć informacje o profilu reklamodawcy na pobliskiej liście rówieśników. Aby przeglądarki widziały listę zawierającą i obraz oraz niektóre dane o pobliskich rówieśnikach.

Myślę, że można to osiągnąć, przekazując dane poprzez discoveryInfo, gdy reklamodawca jest inicjowany. I przekazać dane discoveryInfo w ten sposób:

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

Ale czy jest jakiś sposób, aby utworzyć niestandardową MCBrowserViewController który wyświetla discoveryInfo na drugim końcu zamiast za pomocą wbudowanego w jednym? Czy ktoś ma przykładowy kod?

+1

znalazłem odpowiedź tutaj: http://stackoverflow.com/questions/19617882/creating-a-custom-mcbrowserviewcontroller –

Odpowiedz

1

Sugeruję utworzenie własnego tableView, aby wyświetlić listę pobliskich urządzeń z MCBrowser.

Tworzenie wrappera za pomocą wygodnych metod, dzięki czemu można znacznie łatwiej zapełniać pobliskie urządzenia. https://github.com/thkien/THMultipeer

Najpierw ustaw swoje dane odkrycie, jak chcesz przed rozpoczęciem transmisji (to jest w tym reklamę i przeglądanie):

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

Teraz masz pełną kontrolę, jak chcesz, aby wypełnić UI. Wszystko, co musisz zrobić, to wdrożenie delegata w kontrolerze widoku:

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

Jeśli chcesz dostać całą listę rówieśników, wystarczy zadzwonić: THMultipeer.me().peers (język Swift)

Wszystko jest już obsługiwane przez biblioteka. Jednak częścią, której nie zrobiłem, jest niestandardowa MCSession, robię to tylko z częścią Discovery. Mam nadzieję, że uda mi się go ukończyć za 2 - 4 tygodnie. Biblioteka znajduje się w Objective-C, więc powinna być kompatybilna wstecz.

Powiązane problemy