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

.NET 8 MAUI Windows应用如何配置后台接收Azure推送通知?

.NET 8 MAUI Windows端配置后台/关闭状态接收推送通知

1. 配置Package.appxmanifest

直接编辑项目Windows平台下的Package.appxmanifest文件(右键选择「查看代码」,比可视化编辑器更直观),添加以下关键配置:

1.1 添加必要功能声明

在<Capabilities>节点下补充:

<Capability Name="internetClient" />
<Capability Name="internetClientServer" />
<uap:Capability Name="pushNotification" />

1.2 注册推送后台任务

在<Applications> -> <Application>节点下新增<Extensions>节点,声明推送通知的后台处理权限:

<Extensions>
  <uap:Extension Category="windows.backgroundTasks" EntryPoint="Windows.Foundation.Background.TaskEntryPoint">
    <uap:BackgroundTasks>
      <uap:Task Type="pushNotification" />
    </uap:BackgroundTasks>
  </uap:Extension>
</Extensions>

注:EntryPoint无需指定自定义类,Windows系统会自动托管推送通知的后台处理逻辑。

1.3 启用通知显示支持

确保<uap:VisualElements>节点包含以下配置,保证通知能在磁贴、锁屏显示:

<uap:VisualElements ...>
  <uap:DefaultTile ShowName="allLogos" />
  <uap:LockScreen Notification="badgeAndTileText" />
</uap:VisualElements>

2. MAUI代码完善推送逻辑

在Windows平台专属代码中,确保推送通道注册时启用后台接收能力:

2.1 注册推送通道并绑定事件

在Platforms/Windows/App.xaml.cs或专门的推送服务类中,添加通道注册逻辑:

using Windows.Networking.PushNotifications;

public async Task RegisterPushChannelAsync()
{
    var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    // 将channel.UploadUri发送到Azure Notification Hub完成设备注册(你已完成此步骤)
    
    // 绑定推送接收事件,后台状态下也会触发
    channel.PushNotificationReceived += OnPushNotificationReceived;
}

private void OnPushNotificationReceived(PushNotificationChannel sender, PushNotificationReceivedEventArgs args)
{
    if (args.NotificationType == PushNotificationType.Toast)
    {
        args.Cancel = false; // 允许系统默认显示Toast通知
        // 可在此处理自定义业务逻辑,如保存通知数据
    }
}

2.2 启动时重新注册通道

推送通道可能过期,需在应用启动(包括后台唤醒)时重新执行通道注册,保证Azure Notification Hub中的通道地址最新。

3. Azure推送格式要求

向Windows设备推送时,必须使用Toast格式的Payload(不能用Raw格式),系统才会在应用后台/关闭状态下显示通知并触发后台处理。示例Payload:

{
    "to": "<Windows设备通道ID>",
    "notification": {
        "title": "新通知",
        "body": "这是一条后台推送消息",
        "sound": "default"
    },
    "data": {
        "customKey": "自定义业务数据"
    }
}

关键注意事项

  • 无需编写自定义后台任务类,Windows系统会自动处理推送的接收与Toast显示。
  • 应用需在Microsoft Store或侧载(开启开发模式)环境下运行,后台推送才能正常工作,调试环境可能需额外配置。
  • 若用户手动在任务管理器终止应用,部分场景下无法接收推送,这是Windows系统限制,无法通过配置绕过。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:00:09