Я не уверен, как задать этот вопрос или даже если я иду в правильном направлении.
Я пытаюсь внедрить 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/