Flutter---认识-Notification

基本概念

复制代码
本地通知:应用自己创建和管理的通知

推送通知:从服务器推送的通知(FCM/APNs)

前台服务通知:保持应用在后台运行

定时通知:在指定时间触发的通知

通知的重要性级别

Dart 复制代码
enum Importance {
  none,      // 不显示
  min,       // 最低,不发出声音
  low,       // 低,可能发出声音
  default,   // 默认,发出声音
  high,      // 高,显示在手机弹窗里,但是不会直接弹出
  max,       // 最高,一定会弹出(浮动通知)
}

主要依赖

Dart 复制代码
dependencies:
  flutter_local_notifications: ^19.5.0
  timezone: ^0.10.0  # 用于定时通知
  permission_handler: ^11.0.0          # 权限管理
  android_alarm_manager_plus: ^3.0.2   # 精确定时(Android)

通道参数的详细说明

Dart 复制代码
AndroidNotificationChannel(
  // 必需参数
  'channel_id',                // 唯一ID
  '通道名称',                  // 用户看到的名称
  
  // 重要参数
  importance: Importance.max,  // 重要性
  description: '描述',         // 通道描述
  
  // 声音和震动
  playSound: true,             // 播放声音
  sound: RawResourceAndroidNotificationSound('sound'), // 自定义声音
  enableVibration: true,       // 启用震动
  vibrationPattern: Int64List.fromList([0, 1000, 500, 1000]),
  
  // 视觉
  ledColor: Colors.blue,       // LED颜色
  enableLights: true,          // 启用指示灯
  
  // 角标
  showBadge: true,             // 显示角标
  
  // 行为
  channelShowBadge: true,      // 通道显示角标
  channelAction: NotificationChannelAction.update, // 通道动作
);

通知配置的详细解释

Dart 复制代码
AndroidNotificationDetails(
  // 基础配置
  'channel_id',
  '通道名称',
  
  // 重要性行为
  importance: Importance.max,
  priority: Priority.high,
  
  // 声音震动
  playSound: true,
  sound: RawResourceAndroidNotificationSound('sound'),
  enableVibration: true,
  vibrationPattern: Int64List.fromList([0, 1000, 500, 1000]),
  
  // 视觉
  color: Colors.blue,
  colorized: true,
  ledColor: Colors.blue,
  ledOnMs: 1000,
  ledOffMs: 500,
  enableLights: true,
  
  // 图标
  icon: '@mipmap/ic_launcher',
  largeIcon: DrawableResourceAndroidBitmap('@mipmap/ic_launcher'),
  
  // 角标
  channelShowBadge: true,
  number: 1, // 角标数字
  
  // 行为控制
  autoCancel: true,        // 点击后自动取消
  ongoing: false,          // 是否持续通知
  onlyAlertOnce: false,    // 是否只提醒一次
  timeoutAfter: 5000,      // 超时时间(ms)
  
  // 样式
  styleInformation: null,  // 样式信息
  
  // 动作
  actions: [],             // 操作按钮
  
  // 分组
  groupKey: 'group_key',
  setAsGroupSummary: false,
  groupAlertBehavior: GroupAlertBehavior.all,
  
  // 可见性
  visibility: NotificationVisibility.public,
  localOnly: false,
  
  // 快捷方式
  shortcutId: 'shortcut_id',
  
  // 类别
  category: AndroidNotificationCategory.message,
  
  // 音频属性
  audioAttributesUsage: AudioAttributesUsage.notification,
);
相关推荐
kTR2hD1qb4 小时前
Flutter 复杂拖拽排序实战:同源排序 + 跨容器拖拽完整落地
flutter
jingling5555 小时前
Flutter | Dio网络请求实战
android·开发语言·前端·flutter
stringwu7 小时前
Flutter 复杂拖拽排序实战:同源排序 + 跨容器拖拽完整落地
flutter
UnicornDev8 小时前
【Flutter x HarmonyOS 6】设置页面的UI设计
flutter·ui·华为·harmonyos·鸿蒙
G_dou_9 小时前
Flutter+OpenHarmony实战:XMB Tracke
flutter·harmonyos·鸿蒙
●VON17 小时前
鸿蒙Flutter实战:分类管理页BottomSheet CRUD
数据库·flutter·华为·harmonyos·鸿蒙
woodWu21 小时前
Flutter 复杂拖拽排序实战:同源排序 + 跨容器拖拽完整落地
flutter
小小小小小鹿21 小时前
Vibe Coding 实战:Flutter 自定义路径布局
flutter·vibecoding
程序员老刘1 天前
Dart 3.12 更新要点:乏善可陈
flutter·ai编程·dart
●VON1 天前
鸿蒙Flutter实战:水平滑动分类标签筛选栏
flutter·华为·harmonyos