如何从 activity 视图控制器打开我的应用程序并在打开的应用程序中检索数据?

How to open my app from activity view controller and retrieve data in the opened app?

我需要将一个 JSON 文件从我的一个应用程序共享到另一个应用程序。

我想要的用户体验

我尝试了共享扩展,但我想从 activity 控制器打开应用程序并在那里处理数据

想通了

在您计划接收数据的应用上...

  • 在 Target > Info > Document types >“+”按钮下转到您的项目名称。

  • 在“名称”字段中添加文件类型的名称

  • 在“类型”字段中添加正确的 UTI(统一类型标识符)。 List of known UTIs

  • 运行 应用

应用程序现在应该出现在 JSON 文件类型的 ActivityViewControllers 中

现在我们将了解如何从 ActivityViewController 应用接收数据

在您计划接收数据的应用上...

  • 去现场委托

  • 添加此功能

      func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
      dump(URLContexts.first)
    
      for urlContext in URLContexts {
    
          do {
              let data = try Data(contentsOf:  urlContext.url)
              let obejct = try JSONDecoder().decode(SomeCodableClass.self, from: data)    
    
          } catch {
              print("line \(#line) file \(#file) error\(error)")
          }
      }
    

    }

我相信这就是我们所需要的。 SomeCodableClass 是您需要创建的 class 以反映文件中的 JSON。

This tutorial helped me with this problem

For custom types, follow this tutorial