2015-09-01 209 views
8

当用户在我的应用程序中选择“视频通话”选项时,我需要打开外部应用程序(Cisco Jabber Video for Telepresence)。从通用Windows应用程序打开外部应用程序

我发现,这是不可能在一个通用的应用程序,打开可执行文件的位置...

我还发现,当它不与任何URI方案相关的我无法打开的应用程序。 ..

有什么办法可以做到这一点?

回答

8

由于微软MVA,有些选项被提交给我们(你只需要拨弄出来):

方案1(this Microsoft MVA tutorial推荐):
如果要启动特定应用程序,您必须创建一个URI方案注册,只有您想要启动的特定应用程序才能处理。 使用Launcher,您可以调用只能由一个应用程序处理的指定URI(例如my-cool-uri-scheme://start?param1=123&param2=ABC)。

注意:用户将始终有最终选择哪个应用程序以指定的URI开始(这就是为什么该解决方案是由Microsoft推荐的原因)。

以下解决方案很可能只适用于企业环境!

解决方案2(干净解决方法):
你必须写一个代理的Windows应用程序。
这个代理应用程序(几乎和解决方案#1一样)向自己注册一个特定的文件扩展名。
从您的UWP应用程序中,然后调用一个包含参数的假想文件路径(例如C:/Users/CURRENTUSER/AppData/Roaming/YOURAPP/PARAM1/PARAM2/PARAM3/open.my-cool-extension) - 或者文件本身包含参数(例如XML或RESTful)。
处理应用程序将使用这些信息来启动特定的应用程序(使用Process.Start)和给定的参数。

解决方案3(解决方法):
你必须写一个观察的Windows应用程序。 此应用程序创建一个FileSystemWatcher收听特定的文件夹。那么为什么这个肮脏的变通办法?因为你...

  1. 必须创建一个FileSystemWatcher永久观看一个特定的drop目录为你的UWP应用程序。
  2. 用户无法控制将发生什么(不可能覆盖应用程序启动)
+0

解决方案1将执行。我想到了解决方案2,但我认为它是肮脏的。你指的是什么教程? – vrwim

+0

@vrwim在这个[MVA课程](https://www.microsoftvirtualacademy.com/en-us/training-courses/a-developers-guide-to-windows-10-12618)中,它的主题**#15 * *。 – Herdo

+0

不幸的是,我必须去选择#2,因为非商店应用似乎没有包名...... – vrwim

相关问题