2013-10-04 4 views
5

Sto utilizzando Multipeer Connectivity Framework in IOS7 per creare un'applicazione di chat. E sto usando il controllore incorporato MCBrowserView per visualizzare un elenco di colleghi vicini.IOS7 Multipeer Connettività Creazione di un elenco di browser nelle vicinanze personalizzato utilizzando la scoperta dell'inserzionista Informazioni

Desidero includere le informazioni del profilo dell'inserzionista nell'elenco dei peer vicini. In modo che i browser visualizzino un elenco che contiene e immagini e alcuni dati sui pari vicini.

Penso che possa essere ottenuto passando i dati tramite discoveryInfo quando l'inserzionista viene inizializzato. Io passo i dati discoveryInfo in questo modo:

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

Ma esiste un modo per creare un MCBrowserViewController personalizzato che viene visualizzato il discoveryInfo all'altro capo del filo, piuttosto che utilizzare il costruito in uno? Qualcuno ha un codice di esempio?

+1

ho trovato la risposta qui: http://stackoverflow.com/questions/19617882/creating-a-custom-mcbrowserviewcontroller –

risposta

1

Suggerisco di creare il proprio TableView per visualizzare l'elenco dei dispositivi vicini dal MCBrowser.

Sto creando un wrapper con metodi convenienti in modo da poter popolare più facilmente i dispositivi vicini. https://github.com/thkien/THMultipeer

Prima impostare le tue informazioni scoperta come si desidera prima di iniziare la trasmissione (questo è compresa la pubblicità e la navigazione):

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

Ora avete il pieno controllo di come si desidera popolare l'interfaccia utente. Tutto quello che devi fare è implementare il delegato nel vostro controller della vista:

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

Se si desidera ottenere l'intero elenco di coetanei, è sufficiente chiamare: THMultipeer.me().peers (lingua Swift)

tutto è già gestita dal biblioteca. Eppure la parte che non ho fatto è la MCSession personalizzata, ho solo finito con la parte Discovery. Spero di poterlo finire in 2 - 4 settimane. La libreria è in Objective-C quindi dovrebbe essere compatibile con le versioni precedenti.