2010-07-29 6 views
3

J'ai des PDF dans mon application. Je souhaite proposer une option permettant d'ouvrir ces fichiers PDF dans d'autres applications de lecture électronique tierces pouvant être installées sur l'appareil, comme Stanza et iBooks. L'application Dropbox a implémenté cette fonctionnalité avec succès et je ne trouve aucune information sur la façon de détecter les autres e-readers disponibles sur l'appareil ni sur le schéma d'URL personnalisé pour ces applications. Toute aide serait grandement appréciée. merci d'avance les gars.ouvrir iBooks depuis mon application

+0

duplicata possible de [Comment lancer iBooks e-reader par programme sur iPad?] (Http://stackoverflow.com/questions/2594321/how-to-launch-ibooks-e-reader-programmatically-on-ipad) – richq

Répondre

-1

Vous n'avez pas besoin de détecter les autres applications, vous devez connaître l'URL qui peut les ouvrir.

Un appel comme ceci:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.apple.com"]]; 

Indique au téléphone pour ouvrir la page dans ce qui gère l'application des demandes http/html qui est safari. iBooks possède son propre format d'URL que vous pouvez suivre.

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"ebook://iRobot.pdf"]]; 

REMARQUE: ce n'est pas correct, mais simplement pour illustrer un schéma d'URL différent.

2

iBooks

NSString *stringURL = @"itms-books:"; 

NSURL *url = [NSURL URLWithString:stringURL]; 

[[UIApplication sharedApplication] openURL:url]; 

NSString *stringURL = @"itms-bookss:"; 

NSURL *url = [NSURL URLWithString:stringURL]; 

[[UIApplication sharedApplication] openURL:url]; 
0

Tout d'abord, vous devrez créer un objet NSURL comme ceci:

NSURL *url = [NSURL fileURLWithPath:file.FileName]; 

file.FileName --> your local file path where the document is stored in the local db. 

UIDocumentInteractionController *docController = [UIDocumentInteractionController interactionControllerWithURL:url]; 

docController.delegate = self; 

[docController retain]; 

[docController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES]; 

Les méthodes de délégués suivants devront être mis en œuvre:

-(void)documentInteractionController:(UIDocumentInteractionController *)controller willBeginSendingToApplication:(NSString *)application 
{ 

} 

- (void)documentInteractionController:(UIDocumentInteractionController *)controller didEndSendingToApplication:(NSString *)application 
{ 

} 

- (void)documentInteractionControllerDidDismissOpenInMenu:(UIDocumentInteractionController *)controller 
{ 

} 
Questions connexes