You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 7 MAUI中Android能否自动显示Azure推送通知横幅?

问题解答

Android端能否自动显示通知横幅?

可以,但取决于后端发送的推送消息类型:

  • 如果后端发送的是FCM通知消息(payload包含notification字段),Android系统会自动在托盘显示通知横幅,无需客户端手动构建。
  • 如果后端发送的是FCM数据消息(仅包含data字段),FCM只会将消息传递到客户端的推送委托,必须手动处理显示逻辑。

你的情况应该是后端发送的是数据消息,调整后端的payload格式即可实现自动显示。推荐使用混合消息格式(同时包含notification和data字段):

  • 后台状态下,Android系统自动显示notification字段对应的横幅;
  • 前台状态下,消息会传递到客户端委托,你可以读取data字段做自定义处理。

示例FCM payload格式:

{
  "notification": {
    "title": "通知标题",
    "body": "通知内容"
  },
  "data": {
    "customKey": "自定义数据"
  },
  "to": "设备令牌"
}

统一双平台本地通知的NuGet包推荐

如果需要统一管理双平台的通知显示逻辑(包括处理数据消息的显示),推荐以下两个成熟的包:

1. CommunityToolkit.Maui

微软官方维护的MAUI工具包,内置LocalNotification模块,API跨平台统一,无需编写平台特定代码。支持通知渠道配置、自定义图标、点击事件处理等核心功能。

使用步骤:

  1. 安装NuGet包CommunityToolkit.Maui
  2. 在MauiProgram.cs中注册服务:
builder.UseMauiApp<App>().UseMauiCommunityToolkit();
  1. 在推送委托中调用通知服务:
var notification = new NotificationRequest
{
    NotificationId = 1,
    Title = "通知标题",
    Description = "通知内容",
    ReturningData = "自定义数据"
};
await LocalNotificationCenter.Current.ShowNotification(notification);

2. Plugin.LocalNotification

专注于跨平台本地通知的第三方插件,功能更细化,支持自定义通知声音、进度条、定时通知等高级特性,适配Android通知渠道和iOS通知权限的细节。

使用步骤:

  1. 安装NuGet包Plugin.LocalNotification
  2. 在MauiProgram.cs中注册服务:
builder.Services.AddLocalNotification();
  1. 显示通知:
var notification = new NotificationRequest
{
    NotificationId = 1,
    Title = "通知标题",
    Description = "通知内容",
    Android = new AndroidOptions
    {
        ChannelId = "your_channel_id",
        ChannelName = "通知渠道名称"
    }
};
await NotificationCenter.Current.Show(notification);

内容的提问来源于stack exchange,提问作者ImproveSoftware

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 20:40:18