用途:为 .NET MAUI 应用在 Android、iOS 和 Mac Catalyst 上实现本地通知,涵盖通知渠道、权限、定时调度与前台/后台显示。
主要能力:定义跨平台 INotificationManagerService 接口与事件参数;分别实现 Android 服务(通知渠道、AlarmManager、BroadcastReceiver)与 iOS/Mac Catalyst 服务(UNUserNotificationCenter);通过依赖注入注册各平台实现;配置平台权限与 MainActivity。完整实现代码见 references/local-notifications-api.md。
使用方式:即时通知调用 SendNotification(title, message) 并传 null notifyTime;定时提醒传入 DateTime.Now.AddMinutes(30);Android 需在 DI 注册时用 #if ANDROID 等条件编译守卫,不存在跨平台实现;Android 发送前需先申请权限,UI 更新需用 MainThread.BeginInvokeOnMainThread 切回主线程。
平台注意事项:Android API 33+ 需运行时申请 POST_NOTIFICATIONS,否则静默失败;API 31+ 的 PendingIntent 必须带 PendingIntentFlags.Immutable;API 26+ 需创建通知渠道;MainActivity 需设 LaunchMode.SingleTop;AlarmManager 不跨重启存活,需通过 BOOT_COMPLETED 广播重新调度。iOS 需设置 UNUserNotificationCenterDelegate 才能显示前台通知;iOS 14+ 应使用 UNNotificationPresentationOptions.Banner 而非已弃用的 Alert;权限被拒后需用户在设置中重新开启。
限制:Windows App SDK 支持 toast 即时通知,但不支持定时通知。服务器推送需改用 FCM/APNs 等其他方案,本技能不涉及。