FritzAndFriends / StreamDeckToolkit

A .NET Standard library, template, and tools for building extensions to the Elgato Stream Deck
MIT License
164 stars 45 forks source link

Open custom scheme fails #157

Open AlexHedley opened 4 years ago

AlexHedley commented 4 years ago

Describe the bug Trying to open mystreamtimer://countdown/?mins=15 fails.

var url = mystreamtimer://countdown/?topofhour`
await Manager.OpenUrlAsync(args.context, "https://www.bing.com");

To Reproduce Preferable See @JamesMontemagno's stream Stream Deck Extension for My Stream Timer

Expected behavior Any url opens

Examples mystreamtimer://countdown/?mins=15 mystreamtimer://countdown/?to=15:30 mystreamtimer://countdown/?topofhour

Added code from SO

private void OpenUrl(string url)
{
    try
    {
        Process.Start(url);
    }
    catch
    {
        // hack because of this: https://github.com/dotnet/corefx/issues/10361
        if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
        {
            url = url.Replace("&", "^&");
            Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true });
        }
        else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
        {
            Process.Start("xdg-open", url);
        }
        else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
        {
            Process.Start("open", url);
        }
        else
        {
            throw;
        }
    }
}

Error Details N/A

Screenshots N/A

Desktop (please complete the following information):

Additional context N/A

jamesmontemagno commented 4 years ago

I do know that the open website command of the built in website does work when i have my custom scheme set.