Ответ 1
Я подтвердил, что способ NSURLSession (вторая пуля под "рассмотрением" выше) действительно работает. Я все еще разрабатываю некоторые перегибы, но вот основные сведения. Используя этот метод, вы действительно можете открыть свое приложение из расширения общего доступа.
Этот метод требует 3 основных этапа:
- Сделать фоновый NSURLSession в расширении Share.
- Запустите задачу загрузки.
- Вызов вызова (0).
Убедитесь, что вещь, которую вы загружаете, занимает достаточно много времени, так что расширение заканчивается перед завершением задачи загрузки.
NSString *address = @"https://googledrive.com/host/0B5zObXR9UzgmbFpob2J5eXpjNXc/file3m";
self.mySession = [self configureMySession];
NSURL *url = [NSURL URLWithString:address];
NSURLSessionTask *myTask = [self.mySession downloadTaskWithURL:url];
[myTask resume];
exit(0);
Затем в вашем классе UIApplicationDelegate, использующем приложение, выполните
application:handleEventsForBackgroundURLSession:completionHandler:
метод. Этот метод вызывается, когда задача загрузки заканчивается после того, как ваше расширение было прервано. Затем в этом методе вы можете вызвать
[[UIApplication sharedApplication] openURL:url];
или выполните некоторые другие действия в вашем приложении.
Основная проблема с этим методом заключается в том, что существует задержка между временем завершения приложения и временем запуска приложения. Основное преимущество этого метода над методом UIDocumentInteractionController заключается в том, что дополнительное взаимодействие с пользователем не требуется. Более подробные сведения придут, когда я продолжу экспериментировать.