locked
Get list of available launch URI protocols from a Metro/Windows Store app using C#? RRS feed

  • Question

  • I have a Metro/Windows Store App written in C#. Is there a way to get a list of all the available launch URIs on a user's PC/device? I'm referring to the URI's and their protocols that result in the launch of various apps like Skype, Outlook, etc. In other words, the URI's that can be used by an app to launch another like when an app launches the E-mail client currently installed to prompt the user send an E-mail to someone, or launches the browser with a given URL.

    -- roschler

    Thursday, January 16, 2014 8:26 PM

Answers

  • No, this is not queryable. The app needs to know what protocols it supports and use them. Even if a user doesn't already have an app installed for a protocol they can be prompted to install one when it is used.

    --Rob

    • Marked as answer by roschler Friday, January 17, 2014 12:19 AM
    Thursday, January 16, 2014 8:42 PM
    Moderator

All replies

  • No, this is not queryable. The app needs to know what protocols it supports and use them. Even if a user doesn't already have an app installed for a protocol they can be prompted to install one when it is used.

    --Rob

    • Marked as answer by roschler Friday, January 17, 2014 12:19 AM
    Thursday, January 16, 2014 8:42 PM
    Moderator
  • Hi Rob.  How do people find out about the desired protocols to begin with?  Are you saying the only way is to start with the app first, look up what protocols it supports on the web and what the launcher URIs look like and go from there?  Rinse & repeat for each desired app?


    -- roschler

    Thursday, January 16, 2014 9:06 PM
  • There is no universal list of protocols. Any app can create its own new ones.

    What is the scenario you are trying to achieve?

    --Rob

    Thursday, January 16, 2014 11:47 PM
    Moderator
  • I wanted to enumerate the available launch protocols from a front-end app I'm creating for Metro.  Right now it works with Outlook contacts via the Live Connect API.  I'll be expanding it to other Microsoft apps.  It would have been nice to auto-discover what launchable apps are available on the user's system, but it seems they've really locked down Metro tight.

    What confuses me is if you can't even enumerate available launch URI protocols, how do apps get a list of available Share targets?  Or is that too handed off to an O/S process that is decoupled from the app that initiates the Share request?

    Sorry for these questions, but I'm used to the Win32 API environment where you had a great deal of flexibility, even being able to hook O/S level modules and attaching out-of-process memory as I'm sure you know.  It's hard getting used to the Metro sandbox.


    -- roschler

    Friday, January 17, 2014 12:18 AM
  • Sharing is decoupled and handled by the system.

    The point of the sharing contract is that apps don't need to know who they are sharing with. The app provides the data and the sharing system lets the user choose from the apps which accept that type of data.

    Add a new share target and all share sources can talk to it automatically without needing to be updated with hardcoded values.

    --Rob

    Friday, January 17, 2014 12:28 AM
    Moderator
  • Thanks, Rob.

    -- roschler

    Friday, January 17, 2014 12:32 AM