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

Android端接收Airship通知但不显示问题排查(React Native环境)

Android端@ua/react-native-airship通知不显示问题排查

问题描述

已接收Airship推送的日志消息,但Android设备上无通知展示;使用@ua/react-native-airship库,iOS端功能正常,仅Android端异常。Airship返回的响应数据如下:

{
  "data": {
    "com.urbanairship.metadata": "eyJ2ZXJzaW9uX2lkIjoxLCJ0aW1lIjoxNzEyMjI3MTgxNzg4LCJwdXNoX2lkIjoiYTRmMDA4YjAtZjI2Zi0xMWVlLWFjYjctMDAwMGExYWNlMzdiIiwiY2FtcGFpZ25zIjp7ImNhdGVnb3JpZXMiOltdfSwiY29udGV4dCI6e319",
    "com.urbanairship.push.ALERT": "Congratulations! You've successfully configured Android Push.",
    "com.urbanairship.push.APID": "a7e006b7-1a41-4b68-b950-0e3f5cefee0b",
    "com.urbanairship.push.CANONICAL_PUSH_ID": "a4f008b0-f26f-11ee-acb7-0000a1ace37b",
    "com.urbanairship.push.PUSH_ID": "a4f511c0-f26f-11ee-b31c-02420ecfd1d8",
  },
  "from": "1068392163023",
  "messageId": "0:1712227181868860%84526986f9fd7ecd",
  "sentTime": 1712227181845,
  "ttl": 2419200,
}

排查与解决步骤

1. 确认通知权限

  • 检查Android设备是否已为应用授予通知权限(包括横幅、声音、锁屏显示等),可在系统设置的「应用权限」中手动验证。
  • 也可通过代码主动获取权限状态:
    const status = await Airship.notifications.getNotificationStatus();
    console.log("通知权限状态:", status.authorized); // 需返回true
    

2. 检查通知通道配置(Android 8.0+)

  • Android 8.0及以上系统要求必须配置通知通道,否则通知无法展示。确认已创建有效通道:
    await Airship.notifications.createNotificationChannel({
      id: "default",
      name: "默认通知通道",
      importance: 4, // 对应IMPORTANCE_HIGH,确保通知能弹出
      description: "用于展示推送通知的默认通道"
    });
    
  • 若推送消息未指定通道ID,需确保默认通道已存在且未被禁用。

3. 处理前台推送逻辑

  • 当应用处于前台时,Airship默认不会自动弹出通知,需手动监听pushReceived事件并触发通知展示:
    Airship.addListener("pushReceived", (event) => {
      if (event.foreground) {
        Airship.notifications.showNotification({
          title: "推送通知",
          body: event.data["com.urbanairship.push.ALERT"],
          channelId: "default"
        });
      }
    });
    

4. 验证Airship配置文件

  • 检查android/app/src/main/assets/airshipconfig.properties配置:
    • developmentAppKey/productionAppKey需与Airship后台的对应环境密钥一致
    • fcmSenderId需匹配Firebase项目的Sender ID
    • inProduction需与当前构建环境(开发/生产)保持一致

5. 检查设备系统设置

  • 确认设备未开启免打扰模式,且应用未被设置为「不显示通知」
  • 检查通知栏是否被隐藏,或应用通知被归类到「静默通知」分组中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 11:16:20