React Native Android端FCM令牌通知权限请求:是否需添加代码实现弹窗?
Android端通知权限请求说明
- Android 13(API 33)及以上版本:必须主动请求通知权限才会弹出用户选择弹窗,需要添加对应代码逻辑。
- Android 12(API 32)及以下版本:系统默认开启通知权限,不需要主动请求,也不会弹出权限选择弹窗。
如果要适配Android 13+,可以在原有iOS代码基础上扩展,示例代码如下:
import { PermissionsAndroid, Platform } from 'react-native'; import messaging from '@react-native-firebase/messaging'; async function requestUserPermission() { let authStatus; if (Platform.OS === 'android' && Platform.Version >= 33) { // Android 13+ 需单独请求POST_NOTIFICATIONS权限 const permissionResult = await PermissionsAndroid.request( PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS ); authStatus = permissionResult === PermissionsAndroid.RESULTS.GRANTED ? messaging.AuthorizationStatus.AUTHORIZED : messaging.AuthorizationStatus.DENIED; } else { // iOS 或 Android 12及以下版本用原有逻辑 authStatus = await messaging().requestPermission(); } const enabled = authStatus === messaging.AuthorizationStatus.AUTHORIZED || authStatus === messaging.AuthorizationStatus.PROVISIONAL; if (enabled) { console.log('Authorization status:', authStatus); } }
总结:
- Android 13+ 需要额外添加权限请求代码,才能触发用户选择弹窗;
- 低版本Android无需额外操作,默认允许通知权限。
内容的提问来源于stack exchange,提问作者IOSDev
相关产品推荐
相关产品推荐

