Description
Proposal: Support "ms-app" URI schema to activate applications
Summary
Add support for a new "ms-app:" URI schema to support launching an app via URI, equivalent to how one can do it via ActivateApplication().
The new "ms-app" URI scheme should support many of the options supported by Windows.System.Launcher.LaunchUriAsync(), e.g. LauncherOptions.FallbackUri.
Rationale
Many mechanisms support executing a URI - ShellExecute(), Win-R, TaskManager File/Run, CMD.EXE command line, etc. But there's no support for launching an application via URI, with all the power and functionality of ActivateApplication
shellappsfolder: is a partial workaround but faces severe functional limitations. It's also not available on all Windows platforms; ms-app: should be.
Applications can declare their own custom protocol but ShellExecute("somescheme://foo/bar") has no way to common way to express AO_NOSPLASHSCREEN, LauncherOptions.FallbackUri, .DisplayApplicationPicker, TeatAsUntrusted or other options available through ActivateApplication and LaunchUriAsync.
Scope
Capability | Priority |
---|---|
Support a new protocol for app activation (suggestion: "ms-app") | Must |
Support all parameters available via ActivateApplication | Must |
Support applicable options available via LauncherOptions | Should |
Important Notes
Potential URI design for ms-app scheme:
ms-app://appid?options
where
- appid = Application User Model ID i.e. the application to activate
- options = ActivateApplication.options and LauncherOptions express as query parameters e.g.
ms-app://somepkgname_1234567890abc!App?designmode&splashscreen=0&errorui=0&TreatAsUntrusted=1
Open Questions
What LauncherOptions are important for an ms-app: protocol to support? e.g. FallbackUri