2014-01-21 2 views
1

Я хочу открыть файл в App bundle в Safari так же, как открыть файл с сервера в Safari.Как открыть файл в комплекте в iOS Safari?

Например: открыть файл в формате PDF в Safari, как таким образом:

NSURL *urlNeedToOpen = [NSURL URLWithString:@"http://www.education.gov.yk.ca/pdf/pdf-test.pdf"]; 
[[UIApplication sharedApplication] openURL:urlNeedToOpen]; 

загрузить и скопировать файл PDF-test.pdf моей пачке и попытаться открыть так:

NSURL *urlNeedToOpen = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"pdf-test" ofType:@"pdf"]]; 

[[UIApplication sharedApplication] openURL:urlNeedToOpen]; 

Но ничего не произошло, я не могу просмотреть этот PDF-файл по UIDocumentInteractionController так:

UIDocumentInteractionController *docController = [UIDocumentInteractionController interactionControllerWithURL:urlNeedToOpen]; 
docController.delegate = self; 
[docController presentPreviewAnimated:YES]; 

Но это не Я хочу, я хочу открыть файл в комплекте непосредственно с помощью Safari. Могу я?

ответ

2

По существу, вы не можете открыть локальный URL-адрес файла в ресурсах пакета приложения в другом приложении - даже в Safari. Причина этого в том, что ресурс находится в песочнице вашего приложения - это нарушит структуру безопасности iOS для Safari, чтобы получить к ней доступ. Это работает по дизайну (кроме canOpenURL: должно действительно сделать более очевидным, что никакое другое приложение не может его открыть. Возможно, вы захотите рассмотреть вопрос об ошибке: https://developer.apple.com/bug-reporting/).

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

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