Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 398
vrwim Avatar asked Sep 01 '15 11:09

vrwim


People also ask

How do I associate a website with an app in Windows 10?

To be able to associate apps with websites, you must first open the Settings app. A quick way to do that is to open the Start Menu and then click or tap on the gear icon on its left side. In Settings, click or tap on the Apps category. On the left side of the window, click or tap on Apps for websites.

How do I open an application window?

Select the search button on the taskbar and type the name of the app or program. Press the Windows key on your keyboard and start typing.

Which is the universal application in Windows 10?

Windows 10 introduced the Universal Windows Platform (UWP), which provides a common app platform on every device that runs Windows. The UWP core APIs are the same on all Windows devices.


1 Answers

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)
like image 90
Herdo Avatar answered Jan 04 '23 13:01

Herdo