2010-07-29 6 views
3

У меня есть файл PDF в моем приложении. Я хочу предоставить возможность открыть этот PDF-файл в другом приложении сторонних электронных устройств, которое может быть установлено на устройстве, например, Stanza и iBooks. Приложение Dropbox успешно реализовало эту функцию, и я не могу найти какую-либо информацию о том, как определить, какие другие электронные устройства доступны на устройстве, или схема пользовательских URL-адресов для этих приложений. Любая помощь будет принята с благодарностью. Спасибо заранее, ребята.открыть iBooks из моего приложения

+0

Возможный дубликат [как запустить iBooks e-reader программно на iPad?] (Http://stackoverflow.com/questions/2594321/how-to-launch-ibooks-e-reader-programmatically-on-ipad) – richq

ответ

-1

Вам не нужно обнаруживать другие приложения, вам нужно знать URL-адрес, который может их открыть.

Вызов так:

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

Сообщает телефон, чтобы открыть страницу в любом приложение обрабатывает HTTP/HTML запросов, который является сафари. iBooks имеет свой собственный формат url, который, надеюсь, вы сможете отслеживать.

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

ПРИМЕЧАНИЕ: это неверно, просто для иллюстрации другой схемы URL.

2

интерактивные книги

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

Прежде всего, вам нужно будет создать объект NSURL как так:

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

следующие методы делегат должны быть реализованы:

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

} 

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

} 

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

} 
Смежные вопросы