Я использую displayalert
в своем проекте, и он отлично работает на устройствах android
и ios
.Но для части UWP
она не работает на некоторых страницах.Когда выполнение кода доходит до строки displayalert
, приложение UWP
разрывается и перенаправляется на App.g.i.cs
.Управление кодом сводится к следующему, если блок.
#if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
UnhandledException += (sender, e) =>
{
if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
};
#endif
Если навести курсор мыши на e
, показывая {Windows.UI.Xaml.UnhandledExceptionEventArgs}
Я использую следующий код для отображения предупреждения:
await DisplayAlert("Alert", "A verification code has been sent to your email.", "OK");
Если я изменил вышеуказанные строки, как показано ниже, никаких проблем не возникнет.
Device.BeginInvokeOnMainThread(async () =>
{
await DisplayAlert("Alert", "A verification code has been sent to your email.", "OK");
});
Есть ли какое-либо решение для этой проблемы без добавления Device.BeginInvokeOnMainThread
?И в чем причина этой проблемы?
Пример кода : следующий код - это код, нажимаемый кнопкой.Когда выполнение кода доходит до какой-либо строки с предупреждением на дисплее, появляется сообщение об ошибке выше.
async void ButtonClicked(Object sender, EventArgs e)
{
UserDialogs.Instance.ShowLoading("Signing in...");
var name = usernameEntry.Text;
var password = passwordEntry.Text;
if (Utility.IsInternet())
{
if (!string.IsNullOrWhiteSpace(name) && !string.IsNullOrWhiteSpace(password))
{
UserLogin(name, password);
}
else
{
UserDialogs.Instance.HideLoading();
await DisplayAlert("Alert", "Please enter all details", "Ok");
}
}
else
{
UserDialogs.Instance.HideLoading();
await DisplayAlert("Alert", "No internet connection", "Ok");
}
}