Программно получить список установленных приложений, которые поддерживают данный тип файла - PullRequest
5 голосов
/ 03 апреля 2012

Хотя очевидно, что мы не можем получить список установленных приложений на iOS, есть ли какие-то хитрости, позволяющие нам определить список приложений, зарегистрированных для данного типа файла?То есть список, который пользователь увидит в меню «Открыть в ...» для данного конкретного типа файла.canOpenURL возвращает только логическое значение, но в идеале возвращает список поддерживаемых установленных приложений.

Ответы [ 3 ]

6 голосов
/ 08 мая 2012

Открыть можно, конечно, UIDocumentInteractionController Вам просто нужно создать экземпляр экземпляра UIDocumentInteractionController:

//Following in header file:
UIDocumentInteractionController *docInteractionController;

Реализация делегата:

<UIDocumentInteractionControllerDelegate>

.m:

//Here the url is the document URL that you want to open (or you want to apply open in functionality)
self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:url];
self.docInteractionController.delegate = self;

Метод Open In будет выглядеть следующим образом:

- (void) openIn: (id) sender {
    [self.docInteractionController presentOptionsMenuFromBarButtonItem:sender animated:YES];
}

и как только вы закончите:

[self.docInteractionController dismissMenuAnimated:YES];

и все.Это выведет список приложений, поддерживаемых для документа, и при их выборе запустит соответствующее приложение с URL-адресом документа, с которым мы создали экземпляр.

2 голосов
/ 03 апреля 2012

Я сомневаюсь, что любой из ваших двух вопросов («определить список приложений для данного типа файла» или «как реализовать« открыть в ... »») возможен в текущих версиях iOS, поскольку пользователи не видят отдельных файлы на домашних экранах, которые показывают приложения. Кроме того, приложение не может выполнить событие «открыть отдельное приложение с этим конкретным файлом» (что легко сделать на Macintosh с Apple Events).

Но они звучат как большие запросы, которые вы можете отправить в Apple по адресу http://bugreporter.apple.com (в который вы можете войти, если вы являетесь зарегистрированным разработчиком Apple). Если достаточное количество людей запрашивает эти функции (а потенциальная функция «открыть в ...» действительно часто запрашиваемая функция) , Apple настоятельно рекомендует включить их в будущие выпуски iOS.

0 голосов
/ 08 мая 2012

Вы можете увидеть этот пример программы.Это может помочь вам.Он использовал экземпляр класса UIDocumentaInteractionController со своим свойством UTI (уникальный идентификатор типа).Это помогает в получении списка установленных приложений на вашем телефоне, которые поддерживают тип файла, который вы открыли в своем приложении.Возможно, вам придется немного переписать свойство UTI согласно вашему убеждению

http://developer.apple.com/library/ios/#samplecode/DocInteraction/Introduction/Intro.html

...