Xamarin Macintosh Customer URL 协议句柄传递的参数

Xamarin Macintosh Customer URL protocol handle passed parameter

我编写了一个处理自定义协议的 Macintosh 应用程序:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>My Cool Handler</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>coolhandler</string>
        </array>
    </dict>
</array>

一切都很好。它发射。但是,我正在单击这样的 link:

coolhandler://Iwant/toparse/this

在 Windows 中,注册表项很简单,而且工作正常。当我的 Windows 应用程序启动时,整个 url 作为参数传递,我可以解析它。

    protected override void OnStartup(StartupEventArgs e)
    {
        _url = !e.Args.Any()?"":e.Args[0];
        //parse the url
    }

在我的 pList 或应用程序中,我在哪里处理它?即,如何将 url 参数传递给应用程序?

您可能需要在 C# 中执行类似的操作:

Accessing command line arguments in Objective-C

看起来像这样:

string[] args = NSProcessInfo.ProcessInfo.Arguments;