首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取用于启动OS X应用程序的初始URL

获取用于启动OS X应用程序的初始URL
EN

Stack Overflow用户
提问于 2015-12-14 13:27:14
回答 2查看 987关注 0票数 1

我有一个用Swift编写的带有自定义URL方案的Mac应用程序。

如果应用程序正在运行,并从一个链接打开,一切都很好。但是如果应用程序没有运行,那么应用程序就不会打开正确的页面。

我正在注册这样的通知:

代码语言:javascript
运行
复制
let eventManager = NSAppleEventManager.sharedAppleEventManager()
eventManager.setEventHandler(self, andSelector: "handleGetURLEvent:replyEvent:", forEventClass: AEEventClass(kInternetEventClass), andEventID: AEEventID(kAEGetURL))

如何从以下位置的初始启动获取url:

代码语言:javascript
运行
复制
func applicationDidFinishLaunching(aNotification: NSNotification)

编辑1:在我的应用代理中,我有:

代码语言:javascript
运行
复制
func handleGetURLEvent(event: NSAppleEventDescriptor?, replyEvent: NSAppleEventDescriptor?)

此函数被调用,并在应用程序已打开时起作用,但在应用程序关闭时不起作用。

EN

回答 2

Stack Overflow用户

发布于 2017-08-28 19:57:04

我遇到了完全相同的问题,并通过将注册调用移动到

代码语言:javascript
运行
复制
applicationWillFinishLaunching(_ notification: Notification) 
票数 1
EN

Stack Overflow用户

发布于 2015-12-14 14:37:20

你就快到了!

你仍然需要实现一个处理"kAEGetURLLooking at a tutorial article you might be looking at at事件的方法。

在Application Delegate中,创建如下所示的方法:

代码语言:javascript
运行
复制
func handleGetURLEvent(event: NSAppleEventDescriptor?, replyEvent: NSAppleEventDescriptor?) {
    if let aeEventDescriptor = event?.paramDescriptorForKeyword(AEKeyword(keyDirectObject)) {
        if let urlStr = aeEventDescriptor.stringValue {
            let url = NSURL(string: urlStr)

            // do something with the URL
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34260324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档