UWP 启动 uri 方法 LaunchUriAsync 失败

UWP launch uri method LaunchUriAsync failed

我尝试使用代码

启动 https link
await Windows.System.Launcher.LaunchUriAsync(new Uri(url));

但是结果returnsfalse,我用chrome/Edge打开同样的PDF文件,点击link,效果很好,直接打开Chrome/Edge 中的 link 也很好用。所以我想知道为什么 LaunchUriAsync 失败了,有人可以帮忙吗?我发现有一个名为 LaunchUriForResultsAsync 的方法,但是当我将 Luanch 选项设置为 new LauncherOptions() 时,它会告诉我参数不正确。

PS:我从 UI 线程调用它,我也可以像 https://www.google.com.hk/webhp?hl=zh-CN&sourceid=cnhp&gws_rd=ssl.

一样成功打开 https link

答案不再有效,OP 澄清了 Launcher 来自 UI 线程。

您必须确保从 UI 线程调用 Launcher 方法。如果您从非 UI 线程调用这些方法,它们总是会失败。 return 值然后是 false 并且没有启动任何东西,这看起来像你的情况。

因此,您也无法从后台任务启动 URI。

为了确保 URL 被正确解释,您还可以向 Uri 构造函数添加第二个参数 - UriKind.Absolute

如果有人遇到同样的问题,我的解决方案是设置应用程序包清单的 Capability privateNetworkClientServer。