#xamarin #uwp #xamarin.uwp
#xamarin #uwp #xamarin.uwp
Вопрос:
Я добавляю безопасное хранилище с помощью Xamarin Essentials, но приложение продолжает зависать (без ошибок) каждый раз, когда я пытаюсь сохранить на универсальной платформе Windows (UWP). Кто-нибудь может объяснить, почему оно зависает?
Примечание: У меня это работает на устройствах Android без проблем.
try
{
await SecureStorage.SetAsync("username", Username.Text);
await SecureStorage.SetAsync("password", Password.Text);
}
catch (Exception){}
Согласно этой форме, перед использованием защищенного хранилища в UWP настройка не требуется.
Комментарии:
1. Я протестировал ваш код, но не смог воспроизвести вашу проблему, пожалуйста, убедитесь, что вы установили
Xamarin Essentials
пакет nuget для вашего проекта uwp-клиента и целевую версию uwp выше 16299. для получения более подробной информации, пожалуйста, обратитесь к этому документу .
Ответ №1:
Поток был заблокирован, поэтому мне пришлось добавить Device.BeginInvokeOnMainThread
, поэтому код в конечном итоге выглядит следующим образом:
try
{
Device.BeginInvokeOnMainThread(async () =>{
await SecureStorage.SetAsync("username", Username.Text);
await SecureStorage.SetAsync("password", Password.Text);
});
}
catch (Exception){}
Ответ №2:
У меня была похожая проблема. Код работал для iOS и Android, но не работал для UWP (блокирование приложения). Статья об асинхронности и предотвращении взаимоблокировок в C # проливает свет на эту проблему. В нем объясняются причины, по которым приложение могло быть заблокировано, и как правильно с этим справиться.