Изменить страницу Xamarin.Forms из файла Xamarin.iOS - PullRequest
0 голосов
/ 30 января 2019

Я работаю над приложением Xamarin.Forms, которое использует Аутентификацию Firebase.Чтобы заставить Firebase работать, мне нужно создать два разных специфичных для платформы файла (iOS и Android) для обработки задач аутентификации (например, CreateNewUser и Login).У меня есть страница Xamarin.Forms под названием «Страница оплаты», которая просит пользователя ввести свой адрес электронной почты и пароль, и отправка этой страницы вызывает DependencyService для создания учетной записи пользователя.На странице оплаты у меня также есть маленькое окно, которое появится, если что-то пойдет не так с процессом создания учетной записи (особенно в этом случае, если дублирующее электронное письмо уже существует в базе данных Auth).

Мой вопрос заключается в том, что если один из файлов зависимостей для iOS или Android перехватывает «ERROR_EMAIL_ALREADY_IN_USE», как я могу настроить отображение диалогового окна ошибки на странице оплаты (другими словами, установить его свойство isVisible)на «правда»).Я пробовал несколько вещей, но пока не могу ссылаться на элементы в PaymentPage (странице Xamarin.Forms) со страницы аутентификации Xamarin.iOS.

Мой код зависимости выглядит следующим образом:

public void CreateNewUser(string email, string password, System.Collections.Specialized.NameValueCollection userData) 
{ 
    Auth.DefaultInstance.CreateUser(email, password, HandleAuthDataResultHandler); 
}

async void HandleAuthDataResultHandler(AuthDataResult authResult, Foundation.NSError error) 
{ 
     if(error.UserInfo["error_name"].ToString() == "ERROR_EMAIL_ALREADY_IN_USE") 
    { 
       //What goes here to modify the Xamarin.Forms page?? 
   }
 else { }
}

Ответы [ 2 ]

0 голосов
/ 30 января 2019

MessagingCenter может быть хорошим способом пойти https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/messaging-center

Вы можете добавить свою модель просмотра и опубликовать сообщение от обработчика с результатом.

0 голосов
/ 30 января 2019

в вашем XAML-коде за

try {
  // call your dependency service
} catch (Exception ex)
{
  // update the UI
}

, затем в вашем методе DependencyService должно выдаваться исключение при возникновении ошибки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...