精选文章

Flutter 通知

2022-05-28 · 组件

本地通知通常用 flutter_local_notifications。下面给出初始化、权限与触发的完整流程。

0. 依赖

dependencies:
  flutter_local_notifications: ^16.1.0

1. 初始化

final notifications = FlutterLocalNotificationsPlugin();

Future<void> initNotifications() async {
  const android = AndroidInitializationSettings('@mipmap/ic_launcher');
  const ios = DarwinInitializationSettings();
  const settings = InitializationSettings(android: android, iOS: ios);
  await notifications.initialize(settings);
}

2. iOS 权限申请

await notifications
  .resolvePlatformSpecificImplementation<IOSFlutterLocalNotificationsPlugin>()
  ?.requestPermissions(alert: true, badge: true, sound: true);

3. 发送通知

Future<void> showLocalNotification() async {
  const android = AndroidNotificationDetails(
    'channel_id',
    'default',
    importance: Importance.max,
    priority: Priority.high,
  );
  const ios = DarwinNotificationDetails();
  const details = NotificationDetails(android: android, iOS: ios);

  await notifications.show(0, '标题', '内容', details);
}

4. 常见坑点

  • 渠道未配置:Android 8+ 必须配置 channel
  • 权限未申请:iOS 不弹通知
  • 图标缺失:Android 通知不显示

5. 实践清单

  • 初始化插件
  • iOS 权限申请
  • Android 渠道配置
  • 统一入口触发

JJ

作者简介

专注于内容创作、产品策略与设计实践。欢迎交流合作。

上一篇 下一篇