как получить экземпляр библиотеки, которая вызывается с помощью navigationservice.service() в wp8

Я создал библиотеку аутентификации в wp8, которая требует от меня предоставить пользовательский интерфейс экрана входа в систему и вернуть идентификатор сеанса и другие данные для входа при аутентификации на сервере. У меня есть API, который возвращает данные для входа.

Теперь в приложении я перехожу к экрану входа в систему, используя NavigationService.navigate(), который автоматически создает экземпляр моего библиотечного класса.

Мой вопрос заключается в том, как мне получить ссылку на объект класса, созданный методом навигации. Также кажется, что метод навигации() является асинхронным, поскольку он показывает мою страницу входа и сразу же переходит к строке после вызова.. Мое требование состоит в том, что я должен вызывать API, который возвращает данные для входа, только после выполнения аутентификации, но у меня нет ссылки на созданный объект для его вызова

Есть ли способ заставить функцию navigation() дождаться завершения аутентификации?


person user3604958    schedule 19.05.2014    source источник
comment
вы не можете использовать Navigate сразу после аутентификации, пока не сможете отобразить загрузку...   -  person vITs    schedule 19.05.2014
comment
Для аутентификации мне нужны имя пользователя и пароль, которые вводятся с экрана входа в систему, на который я перехожу, вызывая навигацию.   -  person user3604958    schedule 19.05.2014


Ответы (1)


Вы получаете имя пользователя и пароль на экране входа в систему и используете эти данные для аутентификации. Затем вы можете вызвать свой API на экране входа в систему с помощью кнопки «Войти», и после этого вы можете использовать механизм делегирования событий для получения статуса ответа веб-службы, если это правильно, тогда вы можете перейти к следующему экрану, а до этого вы можете использовать ProgressBar.

пожалуйста, проверьте этот код, чтобы понять ожидание:

    Object response = await Authenticate(UsernameTextBox.Text, PasswdTextBox.Password);

    if (response is success)//typecast your object as per your need to get status of result
    {
      Navigate
    }
    else
    {
     Show error dialog
    }

Также не забудьте изменить подпись обработчика событий кнопки на «async».

person vITs    schedule 19.05.2014
comment
Есть ли способ заставить функцию navigation() ждать, пока событие SubmitButton_click на моем экране входа в систему не завершится, прежде чем оно вернется? - person user3604958; 19.05.2014
comment
хорошо ... вы можете вызвать свою веб-службу аутентификации по щелчку с ожиданием, чтобы она вернула ответ на какой-либо объект. Он будет ждать, пока не придет ответ. Затем вы можете перемещаться в соответствии с требуемым ответом. - person vITs; 19.05.2014
comment
Можете ли вы дать некоторые подробности о том, как я могу это сделать? - person user3604958; 20.05.2014
comment
пожалуйста, проверьте, что я отредактировал ответ с фрагментом кода, чтобы ваша идея была очищена. Поскольку мы использовали ожидание, оно будет ждать, пока мы не получим ответ об аутентификации. Надеюсь, это помогло вам. Если да, не забудьте принять этот ответ. - person vITs; 20.05.2014