[英]In Swift, how would I pass a permanent variable from the main iOS app to an extension (e.g. today extension, custom keyboard)
[英]SwiftUI / AppKit Interaction between embedded app (e.g. extension) and main app
在我的 SwiftUI / AppKit 应用程序中,我有一个主应用程序和一个扩展程序(在我的情况下是 Finder 同步扩展程序),我想将一些数据从我的扩展程序发送到主应用程序(例如调用主应用程序中的方法)。
扩展嵌入在主应用程序中。
我实际上已经找到了解决这个问题的有效解决方案,但它并不是最优的。 我的解决方案通过在扩展中打开 URL 并使用 URL 方案在主应用程序中接受数据来工作。 (这远非最佳,但因为我需要对 object 进行编码,我实际上想通过 JSON、URL 对其进行编码,然后在另一侧对其进行解码)
总而言之,在嵌入式应用程序(例如扩展)和主应用程序之间发送数据/交互的最佳/最简单方法是什么?
有多种方法可以做到这一点,但最有可能的是,您希望主应用程序将数据写入扩展程序可以访问的位置,然后从扩展程序中读取数据。
您应该阅读FileManager.containerURL(forSecurityApplicationGroupIdentifier:)
的文档,其中讨论了 MacOS 中应用程序组的目录: https://developer.apple.com/documentation/foundation/filemanager/1412643-containerurl
一旦你有了一个主应用程序和扩展程序都可以读取的目录,你可以在那里写你需要的任何东西,然后在适当的时间从扩展程序中读取它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.