Google APIs for iOS Google Play Services Client Libraries GrialKit MauiAnimation Microsoft.Maui.Graphics MR.Gestures Prism.Maui Plugin.Fingerprint Plugin.InAppBilling
Plugin.StoreReview Plugin.ValidationRules ReactiveUI.Maui Shiny SkiaSharp Syncfusion Telerik UI for .NET MAUI TemplateUI User Dialogs
.NET MAUI 提供了简单的 API 来访问每个平台的服务和功能,例如加速计、应用操作、文件系统、通知等。在此示例中,我们配置了app actions,用于向每个平台上的应用图标添加菜单选项:
AppActions.SetAsync(
new AppAction("current_info", "Check Current Weather", icon: "current_info"),
new AppAction("add_location", "Add a Location", icon: "add_location")
);
多项目 vs 单个项目 仍然支持为每个平台使用单独的项目来构建您的解决方案,因此您可以选择单项目方法何时适合您的应用程序。
.NET MAUI 在 ASP.NET 和 Blazor 应用程序中使用Microsoft.Extensions库中流行的建造者模式作为初始化和配置应用的统一方式。在这里,您可以向 .NET MAUI 提供字体、利用特定于平台的生命周期事件、配置依赖项、启用特定功能、启用供应商控制工具包等。
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureServices()
.ConfigureFonts(fonts =>
{
fonts.AddFont("Segoe-Ui-Bold.ttf", "SegoeUiBold");
fonts.AddFont("Segoe-Ui-Regular.ttf", "SegoeUiRegular");
fonts.AddFont("Segoe-Ui-Semibold.ttf", "SegoeUiSemibold");
fonts.AddFont("Segoe-Ui-Semilight.ttf", "SegoeUiSemilight");
});
return builder.Build();
}
}
public static class ServicesExtensions
{
public static MauiAppBuilder ConfigureServices(this MauiAppBuilder builder)
{
builder.Services.AddMauiBlazorWebView();
builder.Services.AddSingleton<SubscriptionsService>();
builder.Services.AddSingleton<ShowsService>();
builder.Services.AddSingleton<ListenLaterService>();
#if WINDOWS
builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.Windows.NativeAudioService>();
#elif ANDROID
builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.Android.NativeAudioService>();
#elif MACCATALYST
builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.MacCatalyst.NativeAudioService>();
builder.Services.TryAddSingleton< Platforms.MacCatalyst.ConnectivityService>();
#elif IOS
builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.iOS.NativeAudioService>();
#endif
builder.Services.TryAddTransient<WifiOptionsService>();
builder.Services.TryAddSingleton<PlayerService>();
builder.Services.AddScoped<ThemeInterop>();
builder.Services.AddScoped<ClipboardInterop>();
builder.Services.AddScoped<ListenTogetherHubClient>(_ =>
new ListenTogetherHubClient(Config.ListenTogetherUrl));
return builder;
}
}
阅读更多有关.NET MAUI 的文档:app startup with MauiProgram和single project。
将 Blazor 引入桌面和移动设备
.NET MAUI 也非常适合希望通过原生客户端应用程序参与其中的 Web 开发人员。NET MAUI 与Blazor集成,因此您可以直接在原生移动和桌面应用程序中重用现有的 Blazor Web UI 组件。借助 .NET MAUI 和 Blazor,您可以重用 Web 开发技能来构建跨平台原生客户端应用程序,并构建UI一致的跨移动、桌面和 Web 的应用。
.NET MAUI 在设备上以原生方式执行 Blazor 组件(无需 WebAssembly),并将其呈现到嵌入式 Web 视图控件。由于 Blazor 组件在 .NET 进程中编译和执行,因此它们不仅限于 Web 平台,还可以利用任何原生平台功能,如通知、蓝牙、地理位置和传感器、文件系统等。您甚至可以将原生 UI 控件添加到 Blazor Web UI 旁边。这是一个全新的混合应用程序:Blazor Hybrid!
Google APIs for iOS Google Play Services Client Libraries GrialKit MauiAnimation Microsoft.Maui.Graphics MR.Gestures Prism.Maui Plugin.Fingerprint Plugin.InAppBilling
Plugin.StoreReview Plugin.ValidationRules ReactiveUI.Maui Shiny SkiaSharp Syncfusion Telerik UI for .NET MAUI TemplateUI User Dialogs
.NET MAUI 提供了简单的 API 来访问每个平台的服务和功能,例如加速计、应用操作、文件系统、通知等。在此示例中,我们配置了app actions,用于向每个平台上的应用图标添加菜单选项:
AppActions.SetAsync(
new AppAction("current_info", "Check Current Weather", icon: "current_info"),
new AppAction("add_location", "Add a Location", icon: "add_location")
);
多项目 vs 单个项目 仍然支持为每个平台使用单独的项目来构建您的解决方案,因此您可以选择单项目方法何时适合您的应用程序。
.NET MAUI 在 ASP.NET 和 Blazor 应用程序中使用Microsoft.Extensions库中流行的建造者模式作为初始化和配置应用的统一方式。在这里,您可以向 .NET MAUI 提供字体、利用特定于平台的生命周期事件、配置依赖项、启用特定功能、启用供应商控制工具包等。
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureServices()
.ConfigureFonts(fonts =>
{
fonts.AddFont("Segoe-Ui-Bold.ttf", "SegoeUiBold");
fonts.AddFont("Segoe-Ui-Regular.ttf", "SegoeUiRegular");
fonts.AddFont("Segoe-Ui-Semibold.ttf", "SegoeUiSemibold");
fonts.AddFont("Segoe-Ui-Semilight.ttf", "SegoeUiSemilight");
});
return builder.Build();
}
}
public static class ServicesExtensions
{
public static MauiAppBuilder ConfigureServices(this MauiAppBuilder builder)
{
builder.Services.AddMauiBlazorWebView();
builder.Services.AddSingleton<SubscriptionsService>();
builder.Services.AddSingleton<ShowsService>();
builder.Services.AddSingleton<ListenLaterService>();
#if WINDOWS
builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.Windows.NativeAudioService>();
#elif ANDROID
builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.Android.NativeAudioService>();
#elif MACCATALYST
builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.MacCatalyst.NativeAudioService>();
builder.Services.TryAddSingleton< Platforms.MacCatalyst.ConnectivityService>();
#elif IOS
builder.Services.TryAddSingleton<SharedMauiLib.INativeAudioService, SharedMauiLib.Platforms.iOS.NativeAudioService>();
#endif
builder.Services.TryAddTransient<WifiOptionsService>();
builder.Services.TryAddSingleton<PlayerService>();
builder.Services.AddScoped<ThemeInterop>();
builder.Services.AddScoped<ClipboardInterop>();
builder.Services.AddScoped<ListenTogetherHubClient>(_ =>
new ListenTogetherHubClient(Config.ListenTogetherUrl));
return builder;
}
}
阅读更多有关.NET MAUI 的文档:app startup with MauiProgram和single project。
将 Blazor 引入桌面和移动设备
.NET MAUI 也非常适合希望通过原生客户端应用程序参与其中的 Web 开发人员。NET MAUI 与Blazor集成,因此您可以直接在原生移动和桌面应用程序中重用现有的 Blazor Web UI 组件。借助 .NET MAUI 和 Blazor,您可以重用 Web 开发技能来构建跨平台原生客户端应用程序,并构建UI一致的跨移动、桌面和 Web 的应用。
.NET MAUI 在设备上以原生方式执行 Blazor 组件(无需 WebAssembly),并将其呈现到嵌入式 Web 视图控件。由于 Blazor 组件在 .NET 进程中编译和执行,因此它们不仅限于 Web 平台,还可以利用任何原生平台功能,如通知、蓝牙、地理位置和传感器、文件系统等。您甚至可以将原生 UI 控件添加到 Blazor Web UI 旁边。这是一个全新的混合应用程序:Blazor Hybrid!