Expo Push Notification前台通知不生效 正确排查方案求助
问题排查清单
- 校验
app.json通知配置格式:安卓端必须开启useNextNotificationsApi: true,完整配置结构参考如下:
{ "expo": { "notification": { "icon": "./assets/notification-icon.png", "color": "#ffffff", "useNextNotificationsApi": true } } }
修改app.json后必须重新编译客户端,热更新、重载都不会生效该配置。
- 核对
getExpoPushTokenAsync入参的experienceId,必须和你Expo账号下对应项目的路径完全一致,用户名、项目名的大小写、拼写不能有偏差。 - 检查推送请求的payload格式:不要误加
contentAvailable: true字段,该字段会触发静默通知,不会弹出系统提示。 - 在
addNotificationReceivedListener回调中打印完整notification对象:如果回调未触发,说明通知未送达客户端,优先排查推送服务端配置;如果回调触发但无弹窗,检查是否其他位置重写了setNotificationHandler配置。 - 安卓端专项排查:进入系统应用设置的通知管理页,确认你创建的
default通知渠道的弹窗、提示权限均已开启。
代码优化建议
你现有代码中安卓渠道创建逻辑未加await,可能出现渠道未创建完成就收到通知导致展示异常,修改如下:
if (Platform.OS === 'android') { // 新增await等待渠道创建完成 await Notifications.setNotificationChannelAsync('default', { name: 'default', importance: Notifications.AndroidImportance.MAX, vibrationPattern: [0, 250, 250, 250], lightColor: '#FF231F7C', }); }
内容的提问来源于stack exchange,提问作者MercPls
相关产品推荐
相关产品推荐

