首页 > 解决方案 > Android/iOS 上的 Xamarin Forms 按钮侦听器特定功能

问题描述

我不确定如何问这个问题,或者即使我朝着正确的方向前进。我正在尝试将 Auth0 实现到我的跨平台 Xamarin.Forms 应用程序中。我在构建纯 Android 或纯 iOS 应用程序时取得了成功,但使用 Xamarin Forms,我不确定如何让我的主项目按钮针对 Android 或 iOS 中的功能。

例如:

[主页.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/

标签: c#xamarinxamarin.formsauth0

解决方案


https://github.com/officialdoniald/FileStoringWithDependency这是一个简单的依赖服务实现。我为每个平台创建了一个函数,并从 Xamarin.Froms 页面调用它。你必须对你的项目做同样的事情。您必须在每个平台上创建一个类并通过 DependencyService 调用它。


推荐阅读