如何确定macOS应用程序是否已启动,因为它需要处理URL

时间:2017-06-02 19:28:08

标签: macos url-scheme launching-application

我有macOS应用程序注册自定义方案URL(在Info.plist中),我有一个代码

NSAppleEventManager.shared().setEventHandler(self, andSelector: #selector(self.handleGetURL(event:reply:)), forEventClass: UInt32(kInternetEventClass), andEventID: UInt32(kAEGetURL) )

当我的应用程序启动并且有人点击URL(包含此自定义方案)时,一切正常。

但是,在这种情况下,如果我的应用程序未启动,则系统启动(这很好)。不幸的是,没有调用handleGetURL()。

它有两个问题: - 我如何了解应用程序是以常规方式启动还是由系统触发来处理URL? - 如何获取我需要处理的URL(如果应用程序未运行)

1 个答案:

答案 0 :(得分:1)

显然,在applicationDidFinishLaunching上注册为时已晚。我在applicationWillFinishLaunching上注册,一切都像魅力一样。