【问题标题】:How to detect if a desktop app is installed from a UWP app如何检测是否从 UWP 应用安装了桌面应用
【发布时间】:2017-07-04 17:45:06
【问题描述】:

我基本上和 MSDN 上的这个人问了同样的问题:How to detect if application is installed on the device

但是,我是开发新手,答案指向 Docs.microsoft.com,我很高兴,但我想我迷路了。

我假设此代码需要驻留在 App.xaml.cs 上,并且它实际上设置了一个属性,我可以使用该属性来打开或关闭我的视图按钮的可见性。

public static IAsyncOperation<LaunchQuerySupportStatus> 
    QueryUriSupportAsync(Windows.Foundation.Uri,Windows.System.LaunchQuerySupportType,System.String)

我想要做的是标记我的一个视图在应用程序中的可见性,如果安装了 Microsoft Dyanmics AX,则不会显示。

这是按钮的 XAML 代码。

<Controls:HamburgerButtonInfo ClearHistory="True" PageType="views:DevicePage">
<StackPanel Orientation="Horizontal">
    <SymbolIcon Width="48"
                Height="48"
                Symbol="Keyboard" />
    <TextBlock Margin="12,0,0,0"
               VerticalAlignment="Center"
               Text="Manage Device" />
</StackPanel>

顺便说一句,我使用 Template10 作为框架。所以我假设由于我的所有视图都显示在Shell.xaml 中,我会在上面的按钮上设置一个条件为Visibility=Visible

【问题讨论】:

  • 实际上这也与 T10 无关,而是基本设计。不幸的是,除非 MS Dynamics AX 是 UWP 应用程序,否则您可能会是 SOL。最终这是行不通的,因为 UWP 的设计阻止您在个人资料之外的目录中工作。
  • 那是令人困惑的部分。我添加的第一个链接就是这个答案...
  • 嗯,这是令人困惑的部分。我添加的第一个链接有这个作为答案...通用 Windows 应用程序可以调用 Launcher.QueryUriSupportAsync 以查看是否安装了支持 URI 和您要启动的软件包。我不完全理解那是在说什么。对我来说,它说 UWP 可以调用 并返回 Available 或 AppNotInstalled 。 docs.microsoft.com/en-us/uwp/api/…
  • 简单 UWP -> UWP 是,UWP -> WIn32 无法。
  • 由于我不知道 MS Dynamics 是否有 Win32 客户端或 UWP 应用程序?因为试图走上发现之路,只发现你搜索的内容是毫无意义的,这完全是浪费时间。这就是为什么我最初声明除非 MS Dynamics AX 是 UWP,否则它将无法工作。

标签: c# xaml uwp launcher


【解决方案1】:

对上述问题的简短回答是:不,UWP 无法检测到系统上安装了哪些 Win32 应用程序。

稍微长一点的答案:如果您真正想知道是否安装了支持特定协议或支持特定文件类型的应用程序,您可以使用 QueryUriSupportAsync 或 QueryFileSupportAsync 找出答案。这些 API 还考虑已安装的 Win32 应用程序。

谢谢, Stefan Wick - Windows 开发者平台

【讨论】:

  • 我有一个类似的问题,以相反的顺序,在MSD forum 上发布了here。您是否有时间分享您的想法和/或建议/cmets。
  • 在 SO 上发布一个新问题,我会回答 :-)
  • 根据您的建议,我已将问题发布到 SO here
  • 我已经发布了答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多