Файл, переданный через AirDrop, является неполным
Я работаю над приложением, одной из функций которого является загрузка и отображение файлов PDF. У меня не было проблем с реализацией этих функций. Затем я захотел включить общий доступ к файлам, но столкнулся со странной проблемой.
Вот как выглядит мой код для обмена:
log.debug("Will share file: '\(fileURL.absoluteString)'")
// an example of fileURL: file:///var/mobile/Containers/Data/Application/3A6D5948-8F14-42FB-905A-D776BD975ED1/Library/Caches/d7e635bb-5baa-4fde-b60b-b3fb869cdf46/6.3%20Rambeskrivning%20Mark.pdf
let shareView = UIActivityViewController(activityItems: [fileURL], applicationActivities: nil)
dependencies.router.show(shareView, asPopoverFrom: barButtonItem)
Ничего особенного, но когда я делю файл через AirDrop, он имеет только 200-250 байт на принимающей стороне и имеет другое имя, что-то вроде "PDF document-373E47D68169-1.pdf" (вместо исходного имени).
Первой моей мыслью было, что загруженный документ поврежден, но это не так (я проверял как на устройстве, так и на симуляторе). Если я выберу другую опцию обмена (например, "Сохранить в файлы"), файл будет предоставлен для общего доступа. UIDocumentInteractionController
демонстрирует такое же поведение. Я также подумал, что это может быть вызвано не сохранением UIActivityViewController
(UIDocumentInteractionController
требует, чтобы совместное использование AirDrop работало), но для этого достаточно, чтобы система сделала это.
Эта проблема воспроизводится на iOS 12.1 и 11.4.1.
Что мне не хватает?
0 ответов
Я столкнулся с той же проблемой, когда все работало, кроме AirDrop. Оказывается, мой экземпляр URL-адреса был относительным, что каким-то образом вызвало проблему с AirDrop. Я решил это мимоходомactivityItems: [fileURL.absoluteURL]
.