Чтение файлов из других приложений, которые совместно используют папку документов, без UIDocumentBrowserViewController - PullRequest
1 голос
/ 17 января 2020

Мне нужна какая-то функция обмена файлами между двумя независимыми приложениями (нельзя использовать AppGroup или что-то подобное). Приложение 1 должно отправить в приложение 2 n документы ( n может быть сотнями), приложение 2 должно разработать эти документы и отправить обратно приложению 1 разработанные документы. Мне бы хотелось минимального взаимодействия с пользователем (чтобы я не использовал UIActivityViewController или аналогичные решения)

К настоящему времени я использую настраиваемый URL-адрес , чтобы приложения могли вызывать себя и общие UIPasteboard для обмена документами. Но так как я не могу контролировать количество или размер документов, я беспокоюсь, что это решение не будет надежным

Поэтому я смотрю на функции совместного использования, представленные в iOS 11, и я вижу, что, используя

UISupportsDocumentBrowser = TRUE

в списке приложений App1, я могу поделиться всеми каталогами документов с приложением Файлы или с любым приложением на основе документов.

Но я не могу понять, могу ли я получить файлы из папки документов App1 с каким-то API, без использования UIDocumentBrowserViewController .

Что-то вроде:

  • App1 set UISupportsDocumentBrowser,LSSupportsOpeningDocumentsInPlace,UIFileSharingEnabled = true и предоставьте доступ к папке с документами
  • App1 вызывает пользовательский URL App2 со списком URL-адресов файлов, которые находятся в папке документов App1
  • App2 запускается и получает файлы, читаемые по этим URL-адресам (которые доступны, потому что App1 совместно использует свою папку документов)

Кто-нибудь знает, возможно ли это, и есть ли API для этого?

Я уже пытался установить UISupportsDocumentBrowser,LSSupportsOpeningDocumentsInPlace,UIFileSharingEnabled = TRUE в App1 и просто попытался из App2 прочитать URL-адрес файла из папки документов App1 с Data(contentsOf: url), но это не работает (без прав на чтение)

Спасибо всем!

...