DisplayPromptAsync 在 Uno Platform for Xamarin Forms WASM 上挂起
DisplayPromptAsync hangs on Uno Platform for Xamarin Forms WASM
我有一个适用于 UWP 的应用程序。它包含这段代码:
private async void Button_Clicked(object sender, EventArgs e)
{
var response1 = await App.Current.MainPage.DisplayPromptAsync("", "message1", "OK", "Cancel", "");
if (string.IsNullOrEmpty(response1)) return;
var response2 = await App.Current.MainPage.DisplayPromptAsync("", "message2", "OK", "Cancel", "");
if (string.IsNullOrEmpty(response2)) return;
}
代码在 UWP 上正常运行。然而,在 Uno for WASM 上,只有第一个响应被正确捕获。第二个响应完全挂起 Web 应用程序。
查看控制台,可能是线程错误,AFTER 我在第一次提示时按了确定按钮:
Failed to raise 'PointerReleasedEvent': System.InvalidOperationException
dotnet.js:1 at System.Threading.Tasks.TaskCompletionSource`1[TResult].SetResult (TResult result) [0x00009] in /__w/1/s/mono/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/TaskCompletionSource.cs:298
dotnet.js:1 at Windows.UI.Xaml.Controls.ContentDialog.<ProcessPrimaryButton>g__Complete|52_0 (Windows.UI.Xaml.Controls.ContentDialogButtonClickEventArgs a) [0x00022] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\ContentDialog\ContentDialog.cs:355
dotnet.js:1 at Windows.UI.Xaml.Controls.ContentDialog.ProcessPrimaryButton () [0x0002d] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\ContentDialog\ContentDialog.cs:365
dotnet.js:1 at Windows.UI.Xaml.Controls.ContentDialog.OnPrimaryButtonClicked (System.Object sender, Windows.UI.Xaml.RoutedEventArgs e) [0x00000] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\ContentDialog\ContentDialog.cs:291
dotnet.js:1 at (wrapper delegate-invoke) <Module>.invoke_void_object_RoutedEventArgs(object,Windows.UI.Xaml.RoutedEventArgs)
dotnet.js:1 at Windows.UI.Xaml.Controls.Primitives.ButtonBase.OnClick (Windows.UI.Xaml.Input.PointerRoutedEventArgs args) [0x00000] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\Primitives\ButtonBase\ButtonBase.cs:304
dotnet.js:1 at Windows.UI.Xaml.Controls.Primitives.ButtonBase.RaiseClick (Windows.UI.Xaml.Input.PointerRoutedEventArgs args) [0x00000] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\Primitives\ButtonBase\ButtonBase.cs:294
dotnet.js:1 at Windows.UI.Xaml.Controls.Primitives.ButtonBase.OnPointerReleased (Windows.UI.Xaml.Input.PointerRoutedEventArgs args) [0x00065] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\Primitives\ButtonBase\ButtonBase.cs:266
dotnet.js:1 at Windows.UI.Xaml.Controls.Control+<>c.<.cctor>b__346_11 (System.Object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs args) [0x00000] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\Control\Control.cs:865
dotnet.js:1 at Windows.UI.Xaml.UIElement.InvokeHandler (System.Object handler, Windows.UI.Xaml.RoutedEventArgs args) [0x000e7] in C:\a\s\src\Uno.UI\UI\Xaml\UIElement.RoutedEvents.cs:826
dotnet.js:1 at Windows.UI.Xaml.UIElement.RaiseEvent (Windows.UI.Xaml.RoutedEvent routedEvent, Windows.UI.Xaml.RoutedEventArgs args, Windows.UI.Xaml.UIElement+BubblingContext ctx) [0x0007f] in C:\a\s\src\Uno.UI\UI\Xaml\UIElement.RoutedEvents.cs:613
dotnet.js:1 at Windows.UI.Xaml.UIElement.RaisePointerEvent (Windows.UI.Xaml.RoutedEvent evt, Windows.UI.Xaml.Input.PointerRoutedEventArgs args) [0x0000d] in C:\a\s\src\Uno.UI\UI\Xaml\UIElement.Pointers.cs:933
那我做错了什么?如何在 运行 on Uno 中正确显示两个连续的事件提示?
这 is/was Uno 平台中的错误。
如果有人再次遇到这个问题,只需将 Uno.UI
软件包更新到最新版本(3.8.0 或更高版本)即可。
我有一个适用于 UWP 的应用程序。它包含这段代码:
private async void Button_Clicked(object sender, EventArgs e)
{
var response1 = await App.Current.MainPage.DisplayPromptAsync("", "message1", "OK", "Cancel", "");
if (string.IsNullOrEmpty(response1)) return;
var response2 = await App.Current.MainPage.DisplayPromptAsync("", "message2", "OK", "Cancel", "");
if (string.IsNullOrEmpty(response2)) return;
}
代码在 UWP 上正常运行。然而,在 Uno for WASM 上,只有第一个响应被正确捕获。第二个响应完全挂起 Web 应用程序。
查看控制台,可能是线程错误,AFTER 我在第一次提示时按了确定按钮:
Failed to raise 'PointerReleasedEvent': System.InvalidOperationException
dotnet.js:1 at System.Threading.Tasks.TaskCompletionSource`1[TResult].SetResult (TResult result) [0x00009] in /__w/1/s/mono/external/corefx/src/Common/src/CoreLib/System/Threading/Tasks/TaskCompletionSource.cs:298
dotnet.js:1 at Windows.UI.Xaml.Controls.ContentDialog.<ProcessPrimaryButton>g__Complete|52_0 (Windows.UI.Xaml.Controls.ContentDialogButtonClickEventArgs a) [0x00022] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\ContentDialog\ContentDialog.cs:355
dotnet.js:1 at Windows.UI.Xaml.Controls.ContentDialog.ProcessPrimaryButton () [0x0002d] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\ContentDialog\ContentDialog.cs:365
dotnet.js:1 at Windows.UI.Xaml.Controls.ContentDialog.OnPrimaryButtonClicked (System.Object sender, Windows.UI.Xaml.RoutedEventArgs e) [0x00000] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\ContentDialog\ContentDialog.cs:291
dotnet.js:1 at (wrapper delegate-invoke) <Module>.invoke_void_object_RoutedEventArgs(object,Windows.UI.Xaml.RoutedEventArgs)
dotnet.js:1 at Windows.UI.Xaml.Controls.Primitives.ButtonBase.OnClick (Windows.UI.Xaml.Input.PointerRoutedEventArgs args) [0x00000] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\Primitives\ButtonBase\ButtonBase.cs:304
dotnet.js:1 at Windows.UI.Xaml.Controls.Primitives.ButtonBase.RaiseClick (Windows.UI.Xaml.Input.PointerRoutedEventArgs args) [0x00000] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\Primitives\ButtonBase\ButtonBase.cs:294
dotnet.js:1 at Windows.UI.Xaml.Controls.Primitives.ButtonBase.OnPointerReleased (Windows.UI.Xaml.Input.PointerRoutedEventArgs args) [0x00065] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\Primitives\ButtonBase\ButtonBase.cs:266
dotnet.js:1 at Windows.UI.Xaml.Controls.Control+<>c.<.cctor>b__346_11 (System.Object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs args) [0x00000] in C:\a\s\src\Uno.UI\UI\Xaml\Controls\Control\Control.cs:865
dotnet.js:1 at Windows.UI.Xaml.UIElement.InvokeHandler (System.Object handler, Windows.UI.Xaml.RoutedEventArgs args) [0x000e7] in C:\a\s\src\Uno.UI\UI\Xaml\UIElement.RoutedEvents.cs:826
dotnet.js:1 at Windows.UI.Xaml.UIElement.RaiseEvent (Windows.UI.Xaml.RoutedEvent routedEvent, Windows.UI.Xaml.RoutedEventArgs args, Windows.UI.Xaml.UIElement+BubblingContext ctx) [0x0007f] in C:\a\s\src\Uno.UI\UI\Xaml\UIElement.RoutedEvents.cs:613
dotnet.js:1 at Windows.UI.Xaml.UIElement.RaisePointerEvent (Windows.UI.Xaml.RoutedEvent evt, Windows.UI.Xaml.Input.PointerRoutedEventArgs args) [0x0000d] in C:\a\s\src\Uno.UI\UI\Xaml\UIElement.Pointers.cs:933
那我做错了什么?如何在 运行 on Uno 中正确显示两个连续的事件提示?
这 is/was Uno 平台中的错误。
如果有人再次遇到这个问题,只需将 Uno.UI
软件包更新到最新版本(3.8.0 或更高版本)即可。