c# - 系统.InvalidOperationException : 'A method was called at an unexpected time when calling LaunchUriAsync inside ToastNotification UWP

标签 c# uwp

当用户单击 Toast 通知时,我尝试使用方法 LaunchUriAsync 打开具有特定 URL 的浏览器。

问题是应用程序抛出 System.InvalidOperationException: 'A method was called at an unexpected time

这只发生在 ToastNotificationActivated 事件处理程序中。

如果我在 ToastNotificationActivated 事件处理程序之外执行此方法,一切正常。

代码如下:

private async void OnActivatedEventHandler<TSender, TResult>(TSender sender, TResult args)
{
  Uri uri = new Uri("...");
  bool success = await Windows.System.Launcher.LaunchUriAsync(uri);
}

谁能解释一下为什么会这样?

欢迎使用任何其他方法来实现类似的目标。

最佳答案

错误消息说在意外的时间调用了该方法。来自 Launcher.LaunchUriAsync Method 的文档,备注中提到-“除非您从 Windows 桌面应用程序调用此 API,否则必须从 ASTA 线程(也称为 UI 线程)内调用此 API。”您需要调用UI 线程中的此方法。

关于c# - 系统.InvalidOperationException : 'A method was called at an unexpected time when calling LaunchUriAsync inside ToastNotification UWP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63117146/

相关文章:

c# - 在 ViewModel 中为命令使用私有(private)集的目的是什么?

c# - 将动态字符串渲染为 Razor

c# - 异步方法 C# 中的 UWP 进度条

uwp - 无法激活 IDL 中定义的投影类型

c# - ASP.NET MVC 5 。异步等待。等待具有不同返回类型的任务

c# - 骰子问题(满屋和直子识别)

c# - 是否有一个 LINQ 语句可以根据其属性之一的最大值从枚举中选择一个对象?

unit-testing - 使用 Jenkins 进行 UWP 单元测试

c# - 有没有办法在代码隐藏中解析 UWP 中的矢量路径几何?

c# - 使用JSON(UWP,C#)获取YouTube统计信息