当用户在我的应用程序中选择“视频通话”选项时,我需要打开外部应用程序(Cisco Jabber Video for Telepresence).
我发现无法在通用应用程序中打开可执行文件的位置…
我还发现,当它与任何URI方案无关时,我无法打开它.
有什么方法可以做到这一点吗?
感谢Microsoft 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
.那为什么这是一个肮脏的解决方法?因为你…
>必须为您的UWP应用程序创建永久监视特定放置目录的FileSystemWatcher.>用户无法控制将要发生的事情(无法覆盖启动的应用程序)