我有一组应用(例如AppA
和AppB
)。让我们说AppA
以编程方式将zip文件发送到另一个应用程序。在AppA
UIDocumentInteractionController
上弹出显示复制到AppB 图标。
选择AppB
后,它会将zip文件发送到AppB
。该文件将被复制到AppB
的必需文件夹中,并且控件会导航回AppA
。
所以这个功能在iOS 10.3.3上完全正常。
但是,在iOS 11 beta 2和现在的beta 4上,此功能不起作用。文档控制器弹出窗口打开,然后它说无法加载到顶部。即使我单击复制到AppB图标进行复制,它也不会执行任何操作。在以前的版本中,我没有在顶部的UIDocumentInteractionController弹出窗口中获取无法加载消息,如下图所示:
我检查过两个应用的plist都有LSApplicationQueriesSchemes
更新1:
调试所有委托方法时,会调用名为willBeginSendingToApplication
和didEndSendingToApplication
。当我将此文件发送到另一个应用程序时,我会忽略docContoller
。所以即使documentInteractionControllerDidDismissOpenInMenu
也会被调用。
所以docController
解散和活动指示向应用程序发送负载仍然会显示并永远保留在那里。 AppB
未启动。
iOS 11 beta 5上的新发现
UIDocumentInteractionController
上的无法加载消息不再存在。但是,点击图标AppB
后问题仍然存在。
答案 0 :(得分:1)
我发现在要复制的文件位于应用包中的情况下会出现此问题。使用iOS 10,它直接从捆绑包中工作。
在iOS 11中,位于应用程序包中的文件可以很好地复制到Apple自己的应用程序,但不能复制到第三方应用程序。将文件从捆绑包复制到tmp文件夹,然后使用该文件,一切正常。