Xamarin.Essentials 入门

Xamarin.Essentials 提供了适用于任何 iOS、Android 或 UWP 应用程序的单一跨平台 API,不管如何创建用户界面,都可以通过共享代码进行访问。 有关支持的操作系统的详细信息,请参阅平台和功能支持指南

安装

Xamarin.Essentials 可用作 NuGet 包并包含在 Visual Studio 的每个新项目中。 通过执行以下步骤,还可以使用 Visual Studio 将其添加到任何现有项目。

  1. 使用 Visual Studio tools for Xamarin 下载并安装 Visual Studio

  2. 使用 Visual Studio C#(Android、iPhone 和 iPad 或跨平台)下的空白应用模板打开现有项目,或创建新项目。

    重要

    若要添加到 UWP 项目,请务必在项目属性中设置内部版本 16299 或更高版本。

  3. Xamarin.Essentials NuGet 包添加到每个项目中:

    在“解决方案资源管理器”面板中,右键单击解决方案名称,然后选择“管理 NuGet 包”。 搜索 Xamarin.Essentials 并将包安装到所有项目,包括 Android、iOS、UWP 和 .NET Standard 库。

  4. 在任何 C# 类中添加对 Xamarin.Essentials 的引用以引用 API。

    C#
    using Xamarin.Essentials;
    
  5. Xamarin.Essentials 需要特定于平台的设置:

    Xamarin.Essentials 支持 Android 版本 4.4(对应于 API 级别 19)及更高版本,但用于编译的目标 Android 版本必须为 9.0 或 10.0(对应于 API 级别 28 和 29)。 (在 Visual Studio 中,已在“Android 清单”选项卡中的 Android 项目的“项目属性”对话框中设置这两个版本。在 Visual Studio for Mac 中,已在“Android 应用程序”选项卡中的 Android 项目的“项目选项”对话框中设置这两个版本。)

    针对 Android 9.0 进行编译时,Xamarin.Essentials 将安装必需的 28.0.0.3 版 Xamarin.Android.Support 库。 还应使用 NuGet 包管理器将应用所需的其他任何 Xamarin.Android.Support 库更新到版本 28.0.0.3。 应用使用的所有 Xamarin.Android.Support 库都应相同,且版本不得低于 28.0.0.3。 如果在解决方案中添加 Xamarin.Essentials NuGet 或更新 NuGet 时遇到问题,请参阅疑难解答页面

    从版本 1.5.0 开始,在针对 Android 10.0 进行编译时,Xamarin.Essentials 将安装必需的 AndroidX 支持库。 如果尚未转换,请阅读 AndroidX 文档

    在 Android 项目的 MainLauncher 或任何已启动的 Activity 中,必须在 OnCreate 方法中初始化 Xamarin.Essentials:

    C#
    protected override void OnCreate(Bundle savedInstanceState) {
        //...
        base.OnCreate(savedInstanceState);
        Xamarin.Essentials.Platform.Init(this, savedInstanceState); // add this line to your code, it may also be called: bundle
        //...
    

    若要处理 Android 上的运行时权限,Xamarin.Essentials 必须接收任何 OnRequestPermissionsResult。 将以下代码添加到所有 Activity 类:

    C#
    public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
    {
        Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
    
        base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
    }
    
  6. 按照 Xamarin.Essentials 指南为每个功能复制并粘贴代码片段。

Xamarin.Essentials - 用于移动应用(视频)的跨平台 API

其他资源

建议刚开始接触 Xamarin 的开发人员访问 Xamarin 开发入门

访问 Xamarin.Essentials GitHub 存储库查看当前源代码,接下来,运行示例,并克隆存储库。 欢迎为社区做贡献!

浏览 API 文档了解每个 Xamarin.Essentials 功能。