首页 > 解决方案 > iOS 13-如何打开另一个应用程序并将文件传递给它?

问题描述

我有一个绘图应用程序,由于一些重大的结构变化(主要是 PencilKit),我正在为版本 2 实现一个全新的应用程序。版本 1 创建的文档在版本 2 中将是只读的。

我已经在两个版本中实现了 UIActivityViewController,因此我可以成功地将文档从版本 1 移动到版本 2。不过,我想做的是提供另一种选择,即直接在版本 2 中打开版本 1 文档而不会弹出活动视图控制器向上。我正在通过文件 URL 共享,我看到了如何通过 URL 方案实现打开应用程序,但我不确定我是否可以通过 URL 方案打开并且 URL 既是自定义方案又是文件引用。

标签: iosswiftswift5

解决方案


我能够通过使用包含我的旧应用程序和新应用程序的 AppGroup 来实现这一点。这给了我一个共享区域来保存和检索文件。一旦我在 Xcode 中的应用程序组中注册了这两个应用程序,我就可以将文件写入共享目录,如下所示:

    if let sharedURL = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "group.mycompany.appgroupname") {   <read or write the files in here> }

然后我打开了一个包含文件路径的自定义 URL,或术语“ALL_FILES”,例如“myapp://private/where/apple/put/my/files/file1.ext”。或“myapp://ALL_FILES”,新应用程序将解析 URL 以决定做什么。


推荐阅读