Слушатель кнопок форм Xamarin на Android / iOS Специальные функции - PullRequest
0 голосов
/ 22 марта 2019

Я не уверен, как задать этот вопрос или даже если я иду в правильном направлении. Я пытаюсь внедрить Auth0 в свое кроссплатформенное приложение Xamarin.Forms. Я добился успеха при создании приложения для чистого Android или iOS, но с Xamarin Forms я не уверен, как заставить кнопку основного проекта нацеливать функцию на Android или iOS.

Например:

[MainPage.xaml]

<ToolbarItem Text="Login" Clicked="Login_Clicked" />

[MainPage.xaml.cs]

    using Auth0.OidcClient;
    private async void Login_Clicked(object sender, EventArgs e)
    {
        // This part is in a different file but for the sake of illustration
        _auth0Client = new Auth0Client(new Auth0ClientOptions
        {
            Domain = AuthenticationConfig.Domain,
            ClientId = AuthenticationConfig.ClientId
        });

        var loginResult = await client.LoginAsync();
    }

Примечание: бит Auth0Client будет на 100% ошибочным, говоря о том, что отсутствует ссылка на сборку (что, я думаю, связано с тем, что клиент Oidc работает только на Android и iOS напрямую).

Таким образом, решение, я считаю, было бы иметь функцию Android, в проекте Android реагировать на эту кнопку, но я не знаю, как это сделать, и я не могу найти учебник о том, как / что / где я следует искать, так как фактический макет создается в основном проекте, а пакеты Android и iOS наследуются от него.

private async void Login_Clicked(object sender, EventArgs e)
{
    FancyAndroidFunction client = new FancyAndroidFunction();
}

Или даже лучше, чтобы MainActivity.cs предназначался именно для этой кнопки (что я тоже не знаю, как это сделать).

Я прошел этот урок, и он работает на 100%, но требует сборки только в Android или iOS:

https://auth0.com/docs/quickstart/native/xamarin

Кроме того, я посмотрел этот учебник, но он создает встроенную учетную запись, а не универсальную регистрационную запись, которая сейчас осуждается.

https://auth0.com/blog/xamarin-authentication-and-cross-platform-app-development/

1 Ответ

0 голосов
/ 04 июня 2019

https://github.com/officialdoniald/FileStoringWithDependency это простая реализация службы зависимостей.Я создал функцию каждой платформы, вызывая ее со страниц Xamarin.Froms.Вы должны сделать то же самое с вашим проектом.Вы должны создать класс на каждой платформе и вызвать его через DependencyService.

...