注:
刚开始学习,如果某些案例使用时遇到问题,可以自行百度、查看官方案例、官方github。
简介
Flutter Local Notifications是一个用于在Flutter应用程序中显示本地通知的插件。它提供了一个简单而强大的方法来在设备上发送通知,以便用户可以在应用程序处于后台或设备锁定状态下接收到它们。
使用Flutter Local Notifications插件,可以创建和安排各种类型的通知,包括:
-
即时通知:立即显示的通知,用于向用户传达重要消息或提醒。
-
周期性通知:可以按照指定的时间间隔重复显示的通知,例如每天或每周的提醒。
-
定时通知:在特定日期和时间触发的通知,用于安排未来事件或提醒。
通过使用Flutter Local Notifications,可以自定义通知的外观和行为,包括标题,内容,图标,声音,振动模式和点击操作。此外,还可以处理用户与通知的交互,例如当用户点击通知时执行特定的操作。
Flutter Local Notifications插件使用简单且易于集成到Flutter项目中。它提供了一组易于使用的API,可以轻松创建和管理通知。此外,它还兼容Android和iOS平台,并且可以在两个平台上以相同的代码库进行操作。
官方地址
https://pub-web.flutter-io.cn/packages/flutter_local_notifications
备注:
这里只学习关于安卓的基本使用
flutter pub add flutter_local_notifications
通知辅助类
NotificationHelper
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
class NotificationHelper {
static final NotificationHelper _instance = NotificationHelper._internal();
factory NotificationHelper() => _instance;
NotificationHelper._internal();
final FlutterLocalNotificationsPlugin _notificationsPlugin =
FlutterLocalNotificationsPlugin();
Future<void> initialize() async {
const AndroidInitializationSettings initializationSettingsAndroid =
AndroidInitializationSettings('@mipmap/ic_launcher');
const DarwinInitializationSettings initializationSettingsIOS =
DarwinInitializationSettings();
const InitializationSettings initializationSettings =
InitializationSettings(
android: initializationSettingsAndroid,
iOS: initializationSettingsIOS);
await _notificationsPlugin.initialize(initializationSettings);
Future<void> showNotification(
{required String title, required String body}) async {
const AndroidNotificationDetails androidNotificationDetails =
AndroidNotificationDetails('your.channel.id', 'your channel name',
channelDescription: 'your channel description',
importance: Importance.max,
priority: Priority.high,
ticker: 'ticker');
const String darwinNotificationCategoryPlain = 'plainCategory';
const DarwinNotificationDetails iosNotificationDetails =
DarwinNotificationDetails(
categoryIdentifier: darwinNotificationCategoryPlain,
const NotificationDetails platformChannelSpecifics =
NotificationDetails(android: androidNotificationDetails,iOS: iosNotificationDetails);
await _notificationsPlugin.show(
title,
body,
platformChannelSpecifics,
main() async {
WidgetsFlutterBinding.ensureInitialized();
NotificationHelper notificationHelper = NotificationHelper();
await notificationHelper.initialize();
runApp(const MyApp());
class SwitcherContainerState extends State<SwitcherContainer> {
final NotificationHelper _notificationHelper = NotificationHelper();
@override
Widget build(BuildContext context) {
return Center(
child: ElevatedButton(
onPressed: () {
_notificationHelper.showNotification(
title: 'Hello',
body: 'This is a notification!',
child: const Text("发起通知")));
- 一定要在main函数里进行初始化,不然会报下面这个错误(百度了半天,最后发现是自己忘记了初始化)
- 要开启应用的通知权限,不然可能无法通知
Future<void> scheduleNotification({
required int id,
required String title,
required String body,
}) async {
const AndroidNotificationDetails androidNotificationDetails =
AndroidNotificationDetails('your.channel.id', 'your channel name',
channelDescription: 'your channel description',
importance: Importance.max,
priority: Priority.high,
ticker: 'ticker');
const String darwinNotificationCategoryPlain = 'plainCategory';
const DarwinNotificationDetails iosNotificationDetails =
DarwinNotificationDetails(
categoryIdentifier: darwinNotificationCategoryPlain,
const NotificationDetails platformChannelSpecifics = NotificationDetails(
android: androidNotificationDetails, iOS: iosNotificationDetails);
await _notificationsPlugin.periodicallyShow(
id, title, body, RepeatInterval.everyMinute, platformChannelSpecifics);
这里我设置的是每分钟通知一次,注意:假如你在10:01发起了通知,10:01不会有通知消息,而是从10:02开发每隔一分钟发起一次通知。
Future<void> zonedScheduleNotification(
{required int id,
required String title,
required String body,
required DateTime scheduledDateTime}) async {
const AndroidNotificationDetails androidNotificationDetails =
AndroidNotificationDetails('your.channel.id', 'your channel name',
channelDescription: 'your channel description',
importance: Importance.max,
priority: Priority.high,
ticker: 'ticker');
const String darwinNotificationCategoryPlain = 'plainCategory';
const DarwinNotificationDetails iosNotificationDetails =
DarwinNotificationDetails(
categoryIdentifier: darwinNotificationCategoryPlain,
const NotificationDetails platformChannelSpecifics = NotificationDetails(
android: androidNotificationDetails, iOS: iosNotificationDetails);
await _notificationsPlugin.zonedSchedule(
id, title, body,
tz.TZDateTime.from(scheduledDateTime, tz.local),
platformChannelSpecifics,
uiLocalNotificationDateInterpretation:
UILocalNotificationDateInterpretation.absoluteTime,
注意:如下图参数scheduledDate
是TZDateTime
类型,看了一下官方示例,还需要下载timezone
库。
timezone
是一个用来处理时区信息的,可以使得在不同平台上创建和处理日期时间对象更加方便和准确。
官方地址
https://pub-web.flutter-io.cn/packages/timezone
flutter pub add timezone
初始化
就在通知辅助类NotificationHelper
的initialize
函数里初始化一下就行
import 'package:timezone/timezone.dart' as tz;
import 'package:timezone/data/latest.dart' as tz;
tz.initializeTimeZones();
除了上面三种外还有其他的通知形式,比如(以下内容没有测试)
final androidPlatformChannelSpecifics = AndroidNotificationDetails(
'channel_id',
'channel_name',
'channel_description',
styleInformation: BigTextStyleInformation('大文本内容'),
final androidPlatformChannelSpecifics = AndroidNotificationDetails(
'channel_id',
'channel_name',
'channel_description',
styleInformation: BigPictureStyleInformation(
FilePathAndroidBitmap('图片路径'),
largeIcon: FilePathAndroidBitmap('大图标路径'),
还有一些比如媒体样式、带进度条的等都可以在AndroidNotificationDetails
找到相应的参数。
对于IOS来说,通知样式收到苹果的限制,可以通过DarwinNotificationDetails
的attachments
参数来实现一些简单操作。
:面向跨平台插件的代码,用于在Flutter应用程序中显示本地通知
:通用平台接口的代码
这些可以在相同名称的相应目录中找到。 大多数开发人员都在这里,因为他们希望使用flutter_local_notifications插件。 每个目录中都有一个自述文件,其中包含更多信息。
如果遇到错误,请在GitHub存储库上提出它们。 请不要通过电子邮件将它们发送给我,因为GitHub是适合他们使用的地方,并且允许社区成员回答问题,尤其是如果我错过了电子邮件。 如果它们可以限于实际的错误或功能请求,也将不胜感激。 如果您正在寻找如何使用插件来执行特定类型的通知,请检查示例应用程序是否提供了每种受支持功能的详细代码示例。 如果您错过了某些内容(例如,特定于平台的设置),也请尝试先检查自述文件。
可以在找到有关提交拉取请求的准则
Flutter Local Notifications插件该存储库包含以下软件包
flutter_
local_
notifications:跨平台faci的代码
Flutter Local Notifications插件包含以下软件包
flutter_
local_
notifications:用于跨平台插件的代码,用于在
Flutter应用程序中显示本地
通知flutter_
local_
notifications_platform_interface :通用平台接口的代码,可以在相同名称的相应目录中找到。
大多数开发人员都在这里,因为他们希望使用
flutter_
local_
notifications插件。
Flutter Local Notifications Plugin
A cross platform plugin for displaying local notifications.
Supported Platforms
Android API 16 (4.1 , the minimum version supported by Flutter). Uses the NotificationCompat APIs so it can be run older Android devices.
iOS 8.0 (the minimum version supported by Flutter). Supports the old and new iOS notification APIs (the User Notifications Framework introduced in iOS 10 but will use the UILocalNotification APIs for devices predating iOS 10)
Features
Mocka
很多情况下我们需要给用户弹通知栏,这个功能在Android中是非常简单的,在FLutter中,也有非常成熟的插件flutter_local_notifications供我们使用,这篇文章主要介绍flutter_local_notifications插件初使用是需要进行的几点配置,希望能帮到大家!
步骤1:在pubspec.yaml文件中添加flutter_local_notifications依...
通知栏的
消息推送可简单分为本地
消息推送和网络
消息推送。
这里主要介绍的是本地
消息推送。
使用的package是官方发布的
flutter_
local_
notifications,版本是3.0.3,官方地址如下:
https://pub.
flutter-io.cn/packages/
flutter_
local_
notifications
下面介绍其简单的使用方法:
1、首先获取package:
在pubspec.yaml中添加
dependencies:
在 Android 中使用 Notification 是比较简单的,这里不多做赘述,但若在 flutter 中要使用Notification 我们可以通过 Flutter Local Notifications Plugin 这个插件来实现。
在 pubspec.yaml 里面添加依赖。
dependencies:
flutter_local_notifications: ^0.4.4+2...
在 dart 中导入
import 'package:
flutter_
local_
notifications/
flutter_
local_
notifications.dart';
首先需要创建
通知插件
final
FlutterLocalNotificationsPlugin np =
FlutterLocalNotificationsPlu
引领本地通知新纪元:Flutter Local Notifications 插件
项目地址:https://gitcode.com/MaikuB/flutter_local_notifications
在这个瞬息万变的移动应用世界中,有效吸引用户注意力是至关重要的。为此,我们向您推荐一个非常实用的开源项目——Flutter Local Notifications,它是一个强大的本地通知插件,让您的...
### 回答1:
flutter_local_notifications是一个Flutter插件,用于在移动设备上显示本地通知。它可以帮助开发者在应用程序中实现各种通知功能,例如提醒用户进行某项操作、通知用户有新消息或提醒用户完成某项任务等。该插件支持Android和iOS平台,并提供了丰富的API和配置选项,使开发者可以轻松地创建和管理本地通知。
### 回答2:
flutter_local_notifications 是一个 Flutter 插件,用于在本地进行通知的创建、显示和调度。此插件可让开发人员在应用程序内部创建和安排本地通知,通常用于为应用程序用户提供有关后台事件的提示。
此插件允许开发人员创建三种类型的通知:基本通知、计划通知和重复通知。基本通知是简单的通知消息,可包括标题、正文和指向应用程序的图标。计划通知是在特定的日期和时间向用户发出的通知,例如生日提醒、节日提醒、会议提醒等。重复通知是在特定间隔时间后重复出现的通知,例如每天定时提醒用户进行运动或吃药。
此插件使用 Android 和 iOS 平台的本地通知功能来实现本地通知。它提供了许多选项,例如可自定义通知的图标、声音和振动模式;可自定义通知的优先级和颜色,并具有特定到最小粒度(秒)的计划通知;还可以让开发人员在应用程序未运行时携带数据传递通知。
最后,flutter_local_notifications 插件是一个非常有用的 Flutter 插件,允许开发人员创建和安排本地通知,看起来与设备上的其余通知一样。此插件使用简单、功能强大,可帮助开发人员为应用程序用户提供更好的用户体验。
### 回答3:
Flutter是一种非常流行的移动应用程序开发框架。Flutter_local_notifications是Flutter中的一个插件,它提供了本地通知的功能,可以在用户离开应用的情况下向用户发送通知。
Flutter_local_notifications可以在Android和iOS上使用,并且它提供了更在深度的配置和灵活性,以满足用户的需求。它可以在应用程序的后台执行,并且它可以在用户设备的通知栏,锁屏上提醒用户。
Flutter_local_notifications使用简单易懂,只需要几行代码就可以实现。它可以用于多种类型的应用程序,如电商应用中的订单提醒,健康应用程序中的饮食计划,社交应用程序中的新消息提醒等等。
除了提供基本的通知配置,Flutter_local_notifications还可以自定义通知的图标,声音和振动等,从而让每个通知都更加个性化。此外,Flutter_local_notifications还提供了许多其他的功能,如定时通知,本地存储通知,红点提醒等等。
总之,Flutter_local_notifications是一种非常有用的Flutter插件,它可以为许多不同类型的应用程序提供强大的功能和定制化能力。如果你正在开发一个需要本地通知功能的应用程序,那么Flutter_local_notifications是一个非常不错的选择。