本地通知通常用 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 渠道配置
- 统一入口触发