【问题标题】:iOS 13- How can I open another app and pass it a file?iOS 13-如何打开另一个应用程序并将文件传递给它?
【发布时间】:2020-03-11 15:26:19
【问题描述】:

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

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

【问题讨论】:

  • 你可以做到。您需要发布旧应用程序的最终版本,该版本知道如何将数据导出到新应用程序。 Marvin 和 GoodReader 就是很好的例子。他们都经历了这种转变。
  • @matt 这令人鼓舞……知道如何实施吗?出于这个原因,我曾计划制作旧应用程序的最终版本,或者至少是一个关于新版本的弹出窗口,其中包含指向 App Store 的链接。我找到了关于 UIActivityViewController 或通过自定义 URL 发送简单文本的各种信息......只是不是通过自定义 URL 的文件。

标签: ios swift swift5


【解决方案1】:

我能够通过使用包含我的旧应用程序和新应用程序的 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 以决定做什么。

【讨论】:

    猜你喜欢
    • 2012-02-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多