vrwim
vrwim

Reputation: 14380

Open external application from Universal Windows app

I need to open an external application (Cisco Jabber Video for Telepresence) when a user selects the "video call" option in my app.

I have found that it is not possible to open the location of the executable in a Universal app...

I have also found that I cannot open an application when it is not associated with any URI schemes...

Is there any way I can do this?

Upvotes: 8

Views: 7042

Answers (1)

Stefan Over
Stefan Over

Reputation: 6056

Thanks to Microsoft MVA, some options were presented to us (you just have to fiddle them out):

Solution 1 (recommended by this Microsoft MVA tutorial):
If you want to start a specific application, you have to create a URI scheme registration, that only the specific application you want to start can handle. Using the Launcher, you can call a specified URI that will only be handled by one application (e.g. my-cool-uri-scheme://start?param1=123&param2=ABC).

Note: The user will always have the final choice which app to start with a specified URI (that's why this solution is recommended by Microsoft).

The following solutions will most likely only work in enterprise environments!

Solution 2 (clean workaround):
You have to write a proxy Windows application.
This proxy application (almost as in solution #1) registers itself with a specific file extension.
From your UWP app, you then call an imaginary file path containing your parameters (e.g. C:/Users/CURRENTUSER/AppData/Roaming/YOURAPP/PARAM1/PARAM2/PARAM3/open.my-cool-extension) - or event the file itself containing the parameters (e.g. XML or RESTful).
The handling application will then use those information to start a specific application (using Process.Start) with your given parameters.

Solution 3 (dirty workaround):
You have to write an observing Windows application. This application creates a FileSystemWatcher listening to a specific folder. So why is this the dirty workaround? Because you...

  1. Have to create a FileSystemWatcher permanently watching a specific drop directory for you UWP app.
  2. The user has no control about what will happen (no possibility to override the application to start)

Upvotes: 8

Related Questions