【问题标题】:MacOS mechanism for customized URL scheme自定义 URL 方案的 MacOS 机制
【发布时间】:2018-07-11 21:20:03
【问题描述】:

我正在尝试了解自定义 URL 方案在 Mac 中的工作原理,如下所述:https://css-tricks.com/create-url-scheme/

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

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

但在 MacOS 中似乎不是这种情况?在上面的例子中,它是不是先调用'Mail',然后'Mail'从它注册的回调中获取与协议相关的字符串(接收者的地址等)?即您只能在处理应用程序已经开始运行时获取地址?

在 Mac 中,是否可以像在 Windows 中一样,在启动处理应用程序时传递命令行参数?

【问题讨论】:

    标签: xcode macos url-scheme


    【解决方案1】:

    在上面的例子中,它是否首先调用'Mail',然后'Mail'从它注册的回调中获取与协议相关的字符串(接收者的地址等)?即只有在处理应用程序已经开始运行时才能获取地址?

    正确。一旦应用程序启动——如果它尚未运行——它会收到一个事件(通过Apple Events!),通知它应该打开 URL。

    在 Mac 中,是否可以像在 Windows 中一样,在启动处理应用程序时传递命令行参数?

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

    【讨论】:

    • 并且该事件应该在调用“applicationDidFinishLaunching”之前已经交付(调用了处理程序),对吧?
    猜你喜欢
    • 1970-01-01
    • 2014-04-02
    • 2012-06-15
    • 2011-04-30
    • 2014-10-22
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多