2013-10-04 1 views
5

J'utilise Multipeer Connectivity Framework dans IOS7 pour créer une application de discussion. Et j'utilise le MCBrowserViewController intégré pour afficher une liste d'homologues proches.IOS7 Multipeer Connectivity Création d'une liste de navigation à proximité personnalisée à l'aide de la découverte de l'annonceur Info

Je souhaite inclure les informations de profil de l'annonceur dans la liste des pairs à proximité. Alors que les navigateurs voient une liste qui contient et de l'image et des données sur les pairs à proximité.

Je pense que cela peut être accompli en transmettant des données via discoveryInfo lorsque l'annonceur est initialisé. Je passe les données discoveryInfo dans comme ceci:

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

Mais est-il possible de créer un MCBrowserViewController personnalisé qui affiche le discoveryInfo sur l'autre extrémité plutôt que d'utiliser le construit en un? Est-ce que quelqu'un a un code d'exemple?

+1

j'ai trouvé la réponse ici: http://stackoverflow.com/questions/19617882/creating-a-custom-mcbrowserviewcontroller –

Répondre

1

Je suggère de créer votre propre tableView pour afficher la liste des périphériques à proximité de votre MCBrowser.

Je crée un wrapper avec des méthodes pratiques afin que vous puissiez peupler les périphériques à proximité beaucoup plus facilement. https://github.com/thkien/THMultipeer

d'abord définir vos informations de découverte que vous voulez avant de commencer la diffusion (ce qui est y compris la publicité et la navigation ):

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

Maintenant, vous avez le plein contrôle de la façon dont vous voulez remplir l'interface utilisateur. Tout ce que vous devez faire est de mettre en œuvre le délégué à votre avis contrôleur:

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

Si vous souhaitez obtenir la liste complète des pairs, il suffit d'appeler: THMultipeer.me().peers (langue Swift)

Tout est déjà traité par la bibliothèque. Pourtant, la partie que je n'ai pas fait est le MCSession personnalisé, je n'ai fait que la partie Discovery. J'espère pouvoir le finir dans 2 - 4 semaines. La bibliothèque est en Objective-C donc elle devrait être rétrocompatible.

Questions connexes