Windows store apps 从通用Windows应用程序打开外部应用程序

Windows store apps 从通用Windows应用程序打开外部应用程序,windows-store-apps,uwp,Windows Store Apps,Uwp,当用户在我的应用程序中选择“视频通话”选项时,我需要打开一个外部应用程序(Cisco Jabber Video for Telepresence) 我发现在通用应用程序中无法打开可执行文件的位置 我还发现,当应用程序与任何URI方案都没有关联时,我无法打开它 有什么办法可以做到这一点吗?多亏了Microsoft MVA,我们收到了一些选项(您只需将它们修改一下即可): 解决方案1(推荐人): 如果你想启动一个特定的应用程序,你必须创建一个URI注册方案,只有你想启动的特定应用程序才能处理。 使用

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

我发现在通用应用程序中无法打开可执行文件的位置

我还发现,当应用程序与任何URI方案都没有关联时,我无法打开它


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

多亏了Microsoft MVA,我们收到了一些选项(您只需将它们修改一下即可):

解决方案1(推荐人):
如果你想启动一个特定的应用程序,你必须创建一个URI注册方案,只有你想启动的特定应用程序才能处理。 使用
启动器
,您可以调用仅由一个应用程序处理的指定URI(例如
我的酷URI)-scheme://start?param1=123¶m2=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
    永久监视您的UWP应用程序的特定放置目录
  • 用户无法控制将发生什么(无法覆盖应用程序以启动)

  • 解决方案1就可以了。我想到了解决方案2,但我认为它是肮脏的。你指的是什么教程?@vrwim在这里,它的主题是#15。遗憾的是,我不得不选择选项#2,因为非商店应用程序似乎没有软件包名称……我不理解解决方案#2。当你说“用一个特定的文件扩展名注册”,你是什么意思?代理Windows应用程序可能是控制台应用程序?@Rahnzo完全正确。