Xcode 定制URL方案的MacOS机制

Xcode 定制URL方案的MacOS机制,xcode,macos,url-scheme,Xcode,Macos,Url Scheme,我试图了解自定义URL方案在Mac中的工作原理,如下所述: 例如,单击mailto:链接时,用户会看到“邮件”应用程序启动,并弹出一个已填写正确收件人地址的编写器窗口 我确信在Windows中,在调用处理应用程序时,可以将与协议相关的字符串(例如,包括接收方地址等)作为命令行参数传递。也就是说,在处理应用程序启动时,您有机会解析命令行 但似乎MacOS的情况并非如此?在上面的示例中,它是否首先调用“Mail”,然后“Mail”从其注册的回调中获取与协议相关的字符串(接收方地址等)?i、 e.只有

我试图了解自定义URL方案在Mac中的工作原理,如下所述:

例如,单击mailto:链接时,用户会看到“邮件”应用程序启动,并弹出一个已填写正确收件人地址的编写器窗口

我确信在Windows中,在调用处理应用程序时,可以将与协议相关的字符串(例如,包括接收方地址等)作为命令行参数传递。也就是说,在处理应用程序启动时,您有机会解析命令行

但似乎MacOS的情况并非如此?在上面的示例中,它是否首先调用“Mail”,然后“Mail”从其注册的回调中获取与协议相关的字符串(接收方地址等)?i、 e.只有当处理应用程序已经开始运行时,您才能获取地址

在Mac中,是否可以执行与Windows相同的操作,在启动处理应用程序时传递命令行参数

在上面的示例中,它是否首先调用“Mail”,然后“Mail”从其注册的回调中获取与协议相关的字符串(接收方地址等)?i、 e.您只能在处理应用程序已开始运行时才能获取地址

对。一旦应用程序启动——如果它还没有运行——它就会收到一个事件(通过!),通知它应该打开URL

在Mac中,是否可以执行与Windows相同的操作,在启动处理应用程序时传递命令行参数


不可以。通常,macOS应用程序不使用命令行参数。在这种特定情况下,命令行参数无论如何都不合适,因为它们不能用于将信息传递给已打开的应用程序。

并且该事件应该在调用“ApplicationIDFinishLaunching”之前已传递(调用处理程序),对吗?