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,
);
相关推荐
iFlyCai9 小时前
深入理解Flutter:StatefulWidget生命周期全解析(一)
flutter·dart·状态管理·statefulwidget
xiangxiongfly91510 小时前
Flutter video_player总结
flutter·video_player·chewie
见山是山-见水是水1 天前
鸿蒙版 Flutter Video 视频播放组件:播放控制、全屏切换与倍速播放
flutter·音视频·harmonyos
六年码农1 天前
2026最新开源 屏译ScreenTranslator 0.4.4 开源 全屏实时翻译教程
运维·人工智能·flutter·开源
WeiAreYoung1 天前
Flutter+iOS 实现 Live Activity
flutter·ios
恋猫de小郭1 天前
超好用 R8 Configuration Analyzer, 优化你的 App 大小和内存
android·前端·flutter
键盘飞行员2 天前
Flutter App 全套实战学习计划:从零搭建到 APK 部署
学习·flutter
GitLqr2 天前
Flutter 实战:图片上传前的压缩优化,解决带宽与存储的“大户”问题
flutter·全栈·dart
进哥AI研习社2 天前
AtomCode 跨端开发实战:Flutter 项目从原型到多端运行的 AI 驱动体验
人工智能·flutter
恋猫de小郭2 天前
Flutter A2UI 的正确用法,怎么把 AI 和动态 UI 结合有效生产
android·前端·flutter