当前位置: 首页 > news >正文

上海建材网站建设深圳品牌vi设计

上海建材网站建设,深圳品牌vi设计,php网站开发套模板步骤,负面口碑营销案例前言 注#xff1a; 刚开始学习#xff0c;如果某些案例使用时遇到问题#xff0c;可以自行百度、查看官方案例、官方github。 简介 Flutter Local Notifications是一个用于在Flutter应用程序中显示本地通知的插件。它提供了一个简单而强大的方法来在设备上发送通知#…前言 注 刚开始学习如果某些案例使用时遇到问题可以自行百度、查看官方案例、官方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();// FlutterLocalNotificationsPlugin是一个用于处理本地通知的插件它提供了在Flutter应用程序中发送和接收本地通知的功能。final FlutterLocalNotificationsPlugin _notificationsPlugin FlutterLocalNotificationsPlugin();// 初始化函数Futurevoid initialize() async {// AndroidInitializationSettings是一个用于设置Android上的本地通知初始化的类// 使用了app_icon作为参数这意味着在Android上应用程序的图标将被用作本地通知的图标。const AndroidInitializationSettings initializationSettingsAndroid AndroidInitializationSettings(mipmap/ic_launcher);// 15.1是DarwinInitializationSettings旧版本好像是IOSInitializationSettings有些例子中就是这个const DarwinInitializationSettings initializationSettingsIOS DarwinInitializationSettings();// 初始化const InitializationSettings initializationSettings InitializationSettings(android: initializationSettingsAndroid,iOS: initializationSettingsIOS);await _notificationsPlugin.initialize(initializationSettings);}// 显示通知Futurevoid showNotification({required String title, required String body}) async {// 安卓的通知// your channel id用于指定通知通道的ID。// your channel name用于指定通知通道的名称。// your channel description用于指定通知通道的描述。// Importance.max用于指定通知的重要性设置为最高级别。// Priority.high用于指定通知的优先级设置为高优先级。// ticker用于指定通知的提示文本即通知出现在通知中心的文本内容。const AndroidNotificationDetails androidNotificationDetails AndroidNotificationDetails(your.channel.id, your channel name,channelDescription: your channel description,importance: Importance.max,priority: Priority.high,ticker: ticker);// ios的通知const String darwinNotificationCategoryPlain plainCategory;const DarwinNotificationDetails iosNotificationDetails DarwinNotificationDetails(categoryIdentifier: darwinNotificationCategoryPlain, // 通知分类);// 创建跨平台通知const NotificationDetails platformChannelSpecifics NotificationDetails(android: androidNotificationDetails,iOS: iosNotificationDetails);// 发起一个通知await _notificationsPlugin.show(1,title,body,platformChannelSpecifics,);} }使用 main() async {//用于确保Flutter的Widgets绑定已经初始化。WidgetsFlutterBinding.ensureInitialized();// 初始化通知帮助类NotificationHelper notificationHelper NotificationHelper();await notificationHelper.initialize();runApp(const MyApp()); }class SwitcherContainerState extends StateSwitcherContainer {final NotificationHelper _notificationHelper NotificationHelper();overrideWidget build(BuildContext context) {return Center(child: ElevatedButton(onPressed: () {_notificationHelper.showNotification(title: Hello,body: This is a notification!,);},child: const Text(发起通知)));} }注意 一定要在main函数里进行初始化不然会报下面这个错误百度了半天最后发现是自己忘记了初始化 要开启应用的通知权限不然可能无法通知 周期性通知 // 周期性通知Futurevoid 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);// ios的通知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);} }这里我设置的是每分钟通知一次注意假如你在1001发起了通知10:01不会有通知消息而是从10:02开发每隔一分钟发起一次通知。 定时通知 // 定时通知 Futurevoid 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);// ios的通知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 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参数来实现一些简单操作。
http://www.eeditor.cn/news/126375/

相关文章:

  • 网站开发文档word简单html网页制作代码
  • 网站流量通道百度小说排行榜第一名
  • 网站改版 英文wordpress 和 wix
  • 网站集约化建设行业规定网络哪个运营商好
  • 网站外链快速建设凡科快图免费下载
  • 摄影网站备案建立第一个网站
  • 为什么大型网站都用phpwordpress使用自己的模板
  • 宁波网站建设详细内容有一个做名片的网站
  • 做资源网站广丰区建设局网站
  • 建设银行网站网址怎么做国内网站吗
  • 网站app定制漯河搜狗关键词优化排名软件
  • 天猫网站是怎么做seo优化的wordpress仿静态页
  • python做博客网站为什么这么多人嫌弃top域名
  • 江苏新有建设集团有限公司官方网站社保官方网站登录入口
  • 如何给网站做地图wordpress 页面伪静态页面
  • 做电商排名网站学校网站管理方案
  • 雕塑网站模板专业简历制作网站有哪些
  • 响应式网站wordpress一般通过什么来进行知识点挖掘
  • 专门做三国战纪的网站叫什么意思四川住房城乡和城乡建设厅网站首页
  • 晋中市科技馆网站建设设计一个介绍电视剧的网页
  • 怎么建设一个淘宝客网站谁知道江门网站设计华企立方
  • 网站源码下载哪个网站好网站标题关键词
  • 织梦做的网站很老做水军那些网站好
  • 建设网站专业公司吗wordpress头条主题
  • 打折网站建设教程下载做网站的工作怎么样
  • 做网站分为哪几个岗位阿里巴巴跟建设网站的区别
  • 攀枝花三线建设网站江西企业网站建设哪家好
  • 刀模 东莞网站建设专业做包装设计网站
  • 做电影下载网站好图形设计网站
  • 连云港市住房和城乡建设局网站app界面素材