c# - 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/
解决方案
https://github.com/officialdoniald/FileStoringWithDependency这是一个简单的依赖服务实现。我为每个平台创建了一个函数,并从 Xamarin.Froms 页面调用它。你必须对你的项目做同样的事情。您必须在每个平台上创建一个类并通过 DependencyService 调用它。
推荐阅读
- java - 这个 DateTime 的 JSON 格式模式是什么?
- python - 将 Python Tkinter IntVar() 列表转换为常规 int 列表?
- azure - Azure B2C 与 Azure 应用程序网关和基于路径的后端池
- python - Pandas:从数据框中删除大量重复数字的重复项
- ssl - 通过 SSL 使用 JDBC 和 PySpark
- python - 标准化或标准化分类值
- c++ - 对浮点值数组求和的最快方法
- android - 类型不匹配:推断类型为
但上下文是预期的 - django - 删除并重新创建表后,Django/slite3 manage.py migrate 不起作用
- python - AttributeError:“Ui_WizardPage”对象在 pyqt5 中没有属性“lcdTemp”