React Native推送通知iOS正常Android无法弹出如何解决?
安卓端推送通知无法弹出解决方案
核心问题:未提前创建匹配的通知渠道
安卓8.0及以上系统要求发送通知前必须先创建对应ID的通知渠道,仅在发送通知时传channelId不会自动生成渠道,通知会被系统静默拦截。
在PushNotification配置代码后、应用启动时添加一次渠道创建逻辑即可:
// 与推送配置同层级,全局执行一次即可,不需要放在组件生命周期内 PushNotification.createChannel( { channelId: "specialid", // 必须和发送通知时的channelId完全一致 channelName: "通用通知", // 会显示在系统应用通知设置的渠道列表中 channelDescription: "应用普通消息通知", importance: 4, // 重要等级设为4才能弹出悬浮通知,等级过低只会在通知栏收纳 soundName: "default", vibrate: true }, (created) => console.log("渠道创建状态:", created) )
其余需要检查的配置项
- 安卓13+通知权限:如果测试设备系统版本为安卓13(API 33)及以上,需要在
android/app/src/main/AndroidManifest.xml中添加运行时权限声明:<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> - 前台通知显示开关:你当前配置中
com.dieam.reactnativepushnotification.notification_foreground值为false,表示应用在前台运行时不会弹出通知,测试时如果App处于前台,可以先将该值改为true验证 - 通知颜色配置:你当前配置用了
@color/white作为通知颜色,需要检查android/app/src/main/res/values/colors.xml中是否有对应色值声明,没有的话添加以下代码,或者直接将meta-data的resource值改为@android:color/white使用系统自带白色:<color name="white">#FFFFFFFF</color> - 配置生效验证:修改通知渠道相关配置后必须卸载原有应用再重装,安卓系统会缓存已创建的通知渠道,修改参数不会覆盖原有渠道配置
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

