Открыть произвольный файл с помощью средства выбора системного приложения

#ios #swift #file

#iOS #swift #файл

Вопрос:

Я работаю над приложением для iOS, которое взаимодействует со службой, позволяющей пользователю загружать произвольные файлы. Затем они могут загружать эти файлы, и они должны иметь возможность их просматривать.

Я не могу найти API, который позволяет мне взять файл (либо по пути, URL, либо просто необработанные байты) и открыть его. В других приложениях при выполнении подобных операций отображается меню, которое позволяет мне выбрать приложение для просмотра файла. Как мне вызвать это меню?

Комментарии:

1. Похоже, вам нужна какая-то концепция «браузера документов». Это может сработать для ваших нужд: developer.apple.com/documentation/uikit/view_controllers /…

2. developer.apple.com/documentation/uikit/…

3. Браузер / средство выбора документов предназначено для выбора доступных документов внутри и вне контейнера приложения. Но в вопросе говорится, что они хотят показать меню, которое можно использовать для открытия файла в приложениях, поддерживающих такие файлы. UIActivityViewController делает именно это.

Ответ №1:

В итоге я смог сделать это с помощью UIDocumentInteractionController. Вы просто даете ему URL локального файла, и он отображает предварительный просмотр. Он может обрабатывать множество различных типов файлов и поставляется с меню общего доступа из коробки.

Ответ №2:

Если вы хотите предоставить опции для открытия файла с помощью других приложений / служб, вы можете использовать UIActivityViewController . Вам нужно будет представить его как всплывающее окно на iPad.

 let menu = UIActivityViewController(activityItems: [fileURL], applicationActivities: nil)
self.present(menu, animated: true, completion: nil)