REST API를 사용하여 데이터를 수집하는 Windows Phone 8 앱을 작성 중입니다. API에는 인증이 필요하므로 REST API를 호출 할 때마다 사용자가 인증되었는지 확인해야합니다. 사용자가 인증되지 않은 경우 로그인보기를 표시하고 사용자가 인증하도록합니다. 그것은 HTTP 인증이 아니지만 사용자 정의 로그인 화면을 사용합니다.async-await을 사용하여 다른보기가로드 될 때까지 대기
내 문제는 : 인증을 기다리는 동안 await
을 사용하고 싶습니다.하지만 다른 뷰를 가져와야하기 때문에 어떻게 해야할지 모르겠습니다.
LoadData 방법 :
async Task LoadDataAsync() {
bool authenticated = await AuthenticateAsync();
if (authenticated) {
// do REST API stuff
}
}
그리고 AuthenticateAsync 방법 : 내가 좋아하는 것
async Task<bool> AuthenticateAsync() {
if (alreadyAuthenticated)
return true;
// not authenticated, so bring up a login view to let the user log in
// How do I do this in the context of async-await?
}
그래서 AuthenticateAsync의 방법이 제기하는 여기에 내가하고 싶은 것을 위해 의사 코드입니다 사용자가 인증해야하는 경우 로그인보기. 그러나 비동기가 아니기 때문에 NavigationService.Navigate()
으로 전화 할 수 없습니다. 친절하기 때문에 기다릴 수 없습니다.
어떻게해야할까요?
왜 'NavigationService.Navigate'가 비동기입니까? 기다리기 전에 기본 "로드 중"보기를 표시 한 다음 로그인 또는 메인보기를 표시해야합니다. – McGarnagle
나는 이해하지 못한다. 그럼 네가 NavigationSeriv.Navigate (...);를 기다릴 수 있다고 말하면서 어떻게 든 인증 결과를 얻는다. 내가 어떻게 그럴 수 있을지 모르겠다. –