React Native开发iOS应用如何设置通知interruptionLevel支持时效性通知
解决方案
@react-native-community/push-notification-ios 从v1.10.0版本开始原生支持interruptionLevel参数配置,无需额外编写原生代码。
配置步骤如下:
- 确认当前使用的库版本 ≥ v1.10.0,版本过低时先升级依赖
- 调度本地通知时,直接在通知配置项中添加
interruptionLevel字段即可,可选值对应iOS系统的四个通知等级:passive:被动级别,不会唤醒设备、触发提示音,仅在通知中心展示active:系统默认级别,正常唤醒设备展示通知time-sensitive:时效性级别,可突破专注模式限制正常触达critical:紧急级别,需向苹果申请特殊权限,可突破静音、专注模式限制
配置示例:
import PushNotificationIOS from '@react-native-community/push-notification-ios'; PushNotificationIOS.addNotificationRequest({ id: 'notification_001', title: '待办提醒', body: '你有一个即将到期的待办事项需要处理', // 设置为时效性通知 interruptionLevel: 'time-sensitive', sound: 'default', badge: 1 });
注意事项
- 时效性通知生效前提:需在Xcode项目中开启对应能力,操作路径为:打开Xcode → 选中项目Target → 进入Signing & Capabilities标签 → 添加
Time Sensitive Notifications能力 - 若用户手动关闭了App的时效性通知权限,该配置不会生效,通知会按普通级别处理
- 若使用的库版本低于v1.10.0且无法升级,可自行修改原生源码适配:找到库中
RCTConvert+UNNotificationRequest.m文件,在通知参数转换逻辑中添加interruptionLevel的字段映射即可
内容的提问来源于stack exchange,提问作者Varun Gupta
相关产品推荐
相关产品推荐

