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

Xamarin MAUI中Push Notification无法正常工作问题排查

问题描述

已成功配置Firebase并获取到设备令牌,使用Plugin.PushNotification库,Postman调用FCM API推送请求返回正常,但设备始终收不到通知。已确认:

  • 设备令牌获取正常
  • FCM API推送请求返回正常
  • 通知设置已配置
排查方向
  1. 检查推送消息的Payload格式
    FCM分notification和data两种消息类型,Plugin.PushNotification对二者的处理逻辑有差异:

    • 仅发notification类型消息时,应用被后台杀死后部分平台可能无法触发回调,建议测试时同时包含两种字段
    • Android平台需指定priority为high,否则后台可能延迟或无法接收消息。示例合规Payload:
      {
        "to": "你的设备令牌",
        "priority": "high",
        "notification": {
          "title": "测试标题",
          "body": "测试内容"
        },
        "data": {
          "key1": "value1"
        }
      }
      
  2. 验证插件初始化与权限配置

    • 确保在应用启动初期(如Android的MainActivity#OnCreate、iOS的AppDelegate)完成插件初始化,并注册了通知接收回调
    • Android 13+需显式请求POST_NOTIFICATIONS权限;iOS需在Info.plist配置推送权限描述,并确保用户已授予推送权限
  3. 核对Firebase配置文件

    • Android端确认google-services.json放置在app目录,文件内包名与Firebase控制台、应用包名完全一致
    • iOS端确认GoogleService-Info.plist已添加到项目,Bundle ID与控制台匹配,且已在开发者后台开启APNs推送功能
  4. 多状态测试与日志排查

    • 分别测试应用在前台、后台、完全杀死三种状态下的推送接收情况,不同状态的通知路由逻辑不同
    • Android查看Logcat中FirebaseMessaging相关日志,确认是否有消息接收记录;iOS查看Xcode控制台,排查是否存在推送被拦截的报错信息
  5. 检查设备系统级限制

    • 确认设备系统通知权限未禁用,应用的通知开关处于开启状态
    • Android端关闭省电模式、后台应用限制;iOS端关闭专注模式、应用通知静音设置,这类系统限制可能阻断FCM消息接收

内容的提问来源于stack exchange,提问作者Nguyễn Hữu Thuận

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 06:52:33