Какие типы я должен назначить UIDocumentPickerViewController, чтобы избежать всех документов, кроме открытия документов iWork, Word и Media? - PullRequest
0 голосов
/ 07 апреля 2020

Я использую UIDocumentPickerViewController для пользователя, чтобы выбрать документы с iPhone / iPad и загрузить выбранные документы, например, WhatsApps. Мне нужно ограничить все типы файлов, но также разрешить много типов файлов.

Вот места, где пользователь должен иметь возможность выбирать документы:

  • iCloud Drive
  • On My iPhone
  • Другие поставщики облачных систем, такие как Google Drive, Dropbox, OneDrive

Вот типы документов, которые пользователь должен возможность выбора:

  • PDF
  • Изображение
  • Видео
  • RTF
  • iWork документы (Создано из iOS Приложения, такие как Numbers, Pages et c ..)
  • Все текстовые документы

Что я не хочу, чтобы мой пользователь выбирал (Вероятно, найден в Google Диск или другой поставщик облаков):

  • .gmap
  • .zip
  • .gdo c
  • Другие типы, которые не имеет никакого смысла для пользователя

Вот моя реализация:

let types = [String(kUTTypePDF),
             String(kUTTypeImage),
             String(kUTTypePackage),
             String(kUTTypeRTF),
             "com.microsoft.word.doc",
             "org.openxmlformats.wordprocessingml.document",
             "org.openxmlformats.spreadsheetml.sheet",
             "com.microsoft.excel.xls"]

let picker = UIDocumentPickerViewController(documentTypes: types, in: .import)
picker.delegate = self 
picker.allowsMultipleSelection = true
present(picker, animated: true)

Я использую kUTTypePackage, потому что я обнаружил, что все документы iWork делают не соответствует * 105 4 * они соответствуют kUTTypePackage.

Проблема, с которой я сталкиваюсь

Теперь моя проблема в том, что я не могу выбрать документы, созданные из Номера и Pages в моем приложении iPhone, но в моем iPad я могу выбрать их. Единственное отличие состоит в том, что документы iPhone находятся в On My iphone, а документы iPad - в iCloud Drive.

enter image description here

enter image description here

Если я использую "public.item" в типах, он работает для обоих типов, но в этом случае он позволит пользователю выбрать любой тип документа, который мне может не понадобиться.

В чем может быть проблема? Какие типы я должен предоставить, чтобы охватить все сцены ios?

...