我正在开发一个应用程序,其功能之一是下载和显示 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 上都重现。
我错过了什么?