Edit: Przykładowy projekt, który demonstruje awarii można znaleźć tutaj: https://github.com/rringham/brokenazurexamforms - trzeba ustawić własny Azure App Obsługi URL w:Dlaczego niepowodzenie Navigation.PushAsync po uruchomieniu usługi Azure MobileServiceClient LoginAsync()?
- src/BrokenAzureForms/Droid/Usługi/Użytkownik/DroidUserService .cs
- src/BrokenAzureForms/iOS/Usługi/Użytkownik/IosUserService.cs
Widzę awarię Xamarin Forms pod postacią Navigation.PushAsync()
na Androida, gdy próbuję go użyć po uwierzytelniania z Azure MobileServiceClient
. Ta awaria jest odizolowana od Androida - nie dzieje się to na iOS.
Oto konfiguracja - Mam podstawową NavigationPage
jak mój głównej stronie aplikacji:
MainPage = new NavigationPage(new LoginPage());
na moim LoginPage
, ja uwierzytelniania przy użyciu DependencyService
-injected klasę, która przeprowadza uwierzytelnianie w moim Android projektu:
private async void OnMicrosoftAccountTapped(object sender, EventArgs args)
{
IUserService userService = DependencyService.Get<IUserService>();
bool authenticated = await userService.LoginWithAzureAD();
if (authenticated)
{
await Navigation.PushAsync(new HomePage(), false);
}
}
W moim Android realizacji IUserService
, mogę to zrobić (prawie dokładnie to, co tworzy Azure/Xamarin samouczki pokazać):
public async Task<bool> LoginWithAzureAD()
{
try
{
_user = await _client.LoginAsync(Xamarin.Forms.Forms.Context, MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory);
}
catch (Exception)
{
return false;
}
return true;
}
Oto, gdzie wszystko się rozpada. Po wykonaniu LoginWithAzureAD()
sterowanie wznawia się w OnMicrosoftAccountTapped()
; Następnie przejdź zadzwonić Navigation.PushAsync()
oraz wysięgnik - Aplikacja ulega awarii, bardzo mało szczegółów, aby przejść na:
Wszystko, co mogę myśleć, że Azure MobileServiceClient
robi coś bardzo ostry z Xamarin.Forms.Forms.Context
wewnętrznie, bo jeśli Usuwam połączenie pod numer await userService.LoginWithAzureAD()
, połączenie z Navigation.PushAsync()
działa bez żadnych problemów. Coś w MobileServiceClient jest uszkodzone lub łamie coś w Xamarin Forms.
Ktoś widzi coś takiego?
Hi @Rob Ringham, czy uda Ci się uzyskać to posortowane koniec? To jest właśnie problem, z którym obecnie borykam się i przygwoździłem go do tego samego połączenia, co ty. Dzięki. –