我正在开发一个应用程序,其功能之一是下载和显示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 :(得分:2)
我碰到了这个完全相同的问题,除了AirDrop之外,其他所有功能都起作用。原来我的URL实例是相对的,以某种方式导致了AirDrop的问题。我通过传递activityItems: [fileURL.absoluteURL]
解决了这个问题。