在我的 UWP 应用程序中打开来自 Windows 的所有 http 链接

Posted

技术标签:

【中文标题】在我的 UWP 应用程序中打开来自 Windows 的所有 http 链接【英文标题】:Open a all http links from Windows in my UWP App 【发布时间】:2021-10-14 19:20:39 【问题描述】:

我正在制作一个 UWP 应用程序,它会打开在 Windows 中单击的所有 http/https 协议链接。简而言之,它的行为与默认浏览器相同。

我使用以下与 http/https 协议关联

      <Extensions>
        <uap:Extension Category="windows.protocol">
            <uap:Protocol Name="http">
                <uap:DisplayName>httpUWP</uap:DisplayName>
            </uap:Protocol>
        </uap:Extension>
        <uap:Extension Category="windows.protocol">
            <uap:Protocol Name="https">
                <uap:DisplayName>HttpUWP</uap:DisplayName>
            </uap:Protocol>
        </uap:Extension>
      </Extensions>

以及处理启动的方法protected override void OnActivated(IActivatedEventArgs args)

应用程序编译良好。我将我的应用程序设置为http 的默认开启程序,当我尝试从Win + R 或系统某处打开链接时,该应用程序会发出File system error (-2147219196)

那么,我现在该怎么办?

【问题讨论】:

【参考方案1】:

恐怕httphttps 属于reserved for the operating system 的URI 方案名称,因此您无法将它们与您的应用相关联。

您仍然可以在 Windows 中使用change the default browser。

【讨论】:

我已经将我的应用程序设置为默认值,当我打开链接时,应用程序启动,显示启动画面,系统给出该错误。 您仍然不应将您的应用与任何保留的 URI 方案相关联。 保留一些东西是有意义的。但是在保留文件类型中,甚至列出了.mp3。那么,这是否意味着没有 UWP 应用可以成为默认音乐播放器? 这意味着它不应该与该协议相关联。特定类型文件的默认应用是操作系统设置,基本上不能被自定义应用“劫持”。

以上是关于在我的 UWP 应用程序中打开来自 Windows 的所有 http 链接的主要内容,如果未能解决你的问题,请参考以下文章

Windows 10 UWP:无法停止枢轴控制循环

UWP:BackgroundTask 打开应用主页

UWP ComboBox 不再具有打开/关闭动画(内部版本 14393)

根据 Windows 10 UWP 应用的区域显示当前时间

如何使用 UWP 应用重新启动 Windows PC? [复制]

UWP 应用的调试和发布模式