简体   繁体   中英

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?

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 (eg 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 (eg C:/Users/CURRENTUSER/AppData/Roaming/YOURAPP/PARAM1/PARAM2/PARAM3/open.my-cool-extension ) - or event the file itself containing the parameters (eg 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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM