Flutter中showDailyAtTime与Time方法未定义问题咨询
解决Flutter本地通知的两个常见错误
错误1:FlutterLocalNotificationsPlugin 未定义方法 showDailyAtTime
这是flutter_local_notifications库新版本API变更导致的,旧的showDailyAtTime方法已被移除,替代方案是使用scheduleDailyRepeatNotification方法(适配最新稳定版),或通过zonedSchedule配置重复规则实现每日定时通知。
示例代码替换:
// 已废弃的旧代码 await flutterLocalNotificationsPlugin.showDailyAtTime( 0, '标题', '内容', Time(8, 0, 0), notificationDetails, ); // 适配新版本的代码 await flutterLocalNotificationsPlugin.scheduleDailyRepeatNotification( const NotificationDetails( android: AndroidNotificationDetails('channel id', 'channel name'), ), repeatInterval: RepeatInterval.daily, scheduledTime: const NotificationTime(8, 0), );
若使用更靠后的版本,也可通过zonedSchedule配合RepeatInterval.daily实现,核心是对照当前库版本的官方文档调整API调用。
错误2:_NewEntryPageState 未定义方法 Time
问题通常出自两个原因:
- 混淆了
flutter_local_notifications库的时间类与Flutter原生TimeOfDay,新版本库已将原Time类替换为NotificationTime; - 未正确导入库的时间类,或存在拼写错误。
解决步骤:
- 确保导入正确的库类:
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
- 将
Time(...)替换为NotificationTime(...):
// 旧代码 Time(8, 0, 0) // 新代码 NotificationTime(8, 0)
如果是要使用Flutter原生时间选择功能,则改用TimeOfDay(hour: 8, minute: 0),注意区分第三方库API与框架原生API。
内容的提问来源于stack exchange,提问作者A4tech Malayalam
相关产品推荐
相关产品推荐

