【问题标题】:Get list of package family names at runtime?在运行时获取包系列名称列表?
【发布时间】:2020-02-26 02:30:39
【问题描述】:

我知道如何获取当前 UWP 应用的包系列名称:Package.Current.Id.FamilyName

如何找到用户已安装的其他 UWP 应用的包系列名称?

特别是我对特定协议的应用程序感兴趣,所以FindAppUriHandlersAsync(Uri) 看起来很有希望,但遗憾的是它总是为我返回一个空列表。

有什么想法吗?


编辑

这是我感兴趣的应用中的 uri 方案注册:

<Application 
    ...>
    <Extensions>
    <uap:Extension Category="windows.protocol">
        <uap:Protocol Name="my-great-protocol" ReturnResults="none">
        <uap:DisplayName>My Great Protocol</uap:DisplayName>
        </uap:Protocol>
    </uap:Extension>
    </Extensions>
</Application>

它似乎与启动我的应用程序一样有效:

await Launcher.LaunchUriAsync(new Uri("my-great-protocol:"));

但这仍然返回一个空列表:

var apps = await Launcher.FindAppUriHandlersAsync(new Uri("my-great-protocol:"));

【问题讨论】:

    标签: uwp


    【解决方案1】:

    在运行时获取包家族名称列表?

    根据您的要求,您可以参考此UWPTaskMonitor 代码示例,该示例使用AppDiagnostic api 来获取正在运行的 UWP 应用程序信息。您可以参考这个相关的blog

    更新

    派生自这个document

    代表处理指定 http(s) URI 的每个应用程序的 AppInfo 对象列表。

    Launcher.FindAppUriHandlersAsync(Uri)方法可以用来获取应用的信息,你需要先注册处理应用清单中的http和https链接,详细步骤请参考this

    更新 2

    例如:

    <Application ...>
        <Extensions>
            <uap3:Extension Category="windows.appUriHandler">  
                <uap3:AppUriHandler>  
                <uap3:Host Name="my-great-host.com" />  
                </uap3:AppUriHandler>
            </uap3:Extension>  
        </Extensions>
    </Application>
    

    var apps = await Launcher.FindAppUriHandlersAsync(new Uri("http://my-great-host.com"));
    

    【讨论】:

    • 感谢您的快速响应!我认为您链接的AppDiagnostic 示例仅用于运行应用程序,但我对已安装的应用程序感兴趣。我感兴趣的所有应用程序实际上都是我自己的应用程序,并且我已经注册了我自己的 uri 方案(请参阅更新的问题)。我知道注册成功了,因为我可以通过await Launcher.LaunchUriAsync(new Uri("my-great-protocol:")); 启动应用程序。因此,我对FindAppUriHandlersAsync() 没有返回任何东西感到困惑。
    • @Felix,抱歉各位,之前的回复不完整,我添加了更新请查收。
    • 啊,我明白了,uap3:AppUriHandleruap:Protocol 是两个不同的东西。嗯,让我尝试一下:)
    • 好吧,请告诉我结果,如果您有任何更新可以添加到案例更新中。
    • 成功了 :) 我添加了一个 &lt;uap3:AppUriHandler&gt; 元素,然后 Launcher.FindAppUriHandlersAsync(...) 找到了我的应用程序。非常感谢尼科!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    相关资源
    最近更新 更多