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

React Native中Notifee通知在Android默认被屏蔽,如何安装时启用?

解决React Native + Notifee Android通知默认被屏蔽问题

核心原因

Android 13(API 33)及以上版本将通知权限列为运行时权限,默认未授权;部分国内定制ROM(如小米、华为)在更低版本也会默认关闭第三方应用的通知权限,导致安装后通知被系统屏蔽。

解决方案

要实现安装后通知权限正常可用(或引导用户快速授权),需完成以下配置和代码处理:

1. 配置AndroidManifest.xml权限

在android/app/src/main/AndroidManifest.xml中添加权限声明:

<!-- Android 13+ 专属通知权限 -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<!-- 兼容Android 8.0+渠道创建的基础权限(可选) -->
<uses-permission android:name="android.permission.INTERNET" />

2. 运行时主动申请通知权限

在应用启动阶段(比如App.js的useEffect钩子中)发起权限申请,确保用户授权后通知功能正常:

import { Platform, PermissionsAndroid } from 'react-native';
import notifee from '@notifee/react-native';

async function requestNotificationPermission() {
  if (Platform.OS === 'android') {
    // Android 13+ 申请POST_NOTIFICATIONS权限
    if (Platform.Version >= 33) {
      const granted = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS,
        {
          title: '通知权限申请',
          message: '需要您的授权才能接收应用通知',
          buttonNeutral: '稍后再说',
          buttonNegative: '取消',
          buttonPositive: '允许',
        }
      );
      return granted === PermissionsAndroid.RESULTS.GRANTED;
    } 
    // Android 12及以下,无需运行时申请但部分ROM可能默认关闭,引导用户开启
    else {
      const settings = await notifee.getNotificationSettings();
      if (!settings.authorizationStatus) {
        await notifee.openNotificationSettings();
      }
    }
  }
}

// 应用启动时执行权限申请
useEffect(() => {
  requestNotificationPermission();
}, []);

3. 创建Notifee通知渠道(Android 8.0+必做)

Android 8.0及以上必须配置通知渠道,否则通知无法正常显示。建议在应用启动时初始化渠道:

import { AndroidImportance } from '@notifee/react-native';

async function createNotificationChannel() {
  await notifee.createChannel({
    id: 'default_channel',
    name: '默认通知渠道',
    importance: AndroidImportance.HIGH, // 设置高优先级确保通知能弹出
    description: '接收应用的所有通知内容',
  });
}

// 应用启动时初始化渠道
useEffect(() => {
  createNotificationChannel();
}, []);

注意事项

  • 国内定制ROM存在特殊权限逻辑,即便完成上述配置,仍可能需要引导用户手动开启「通知权限」或「悬浮通知」权限。
  • 受Android系统限制,无法强制让通知权限在安装时自动启用,只能通过主动申请+友好引导的方式获取用户授权。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:10:46