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

b2b有哪些企业电脑系统优化软件

b2b有哪些企业,电脑系统优化软件,阿里巴巴国际站是b2b还是b2c,wordpress.com解封前言 注: 刚开始学习,如果某些案例使用时遇到问题,可以自行百度、查看官方案例、官方github。 简介 Flutter Local Notifications是一个用于在Flutter应用程序中显示本地通知的插件。它提供了一个简单而强大的方法来在设备上发送通知&#…

前言

注: 刚开始学习,如果某些案例使用时遇到问题,可以自行百度、查看官方案例、官方github。

简介
Flutter Local Notifications是一个用于在Flutter应用程序中显示本地通知的插件。它提供了一个简单而强大的方法来在设备上发送通知,以便用户可以在应用程序处于后台或设备锁定状态下接收到它们。

使用Flutter Local Notifications插件,可以创建和安排各种类型的通知,包括:

  1. 即时通知:立即显示的通知,用于向用户传达重要消息或提醒。
  2. 周期性通知:可以按照指定的时间间隔重复显示的通知,例如每天或每周的提醒。
  3. 定时通知:在特定日期和时间触发的通知,用于安排未来事件或提醒。

通过使用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();// 初始化函数Future<void> 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);}//  显示通知Future<void> 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 State<SwitcherContainer> {final NotificationHelper _notificationHelper = NotificationHelper();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');// 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);}
}

这里我设置的是每分钟通知一次,注意:假如你在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');// 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, // 设置通知的触发时间是觉得时间);
}

注意:如下图参数scheduledDateTZDateTime类型,看了一下官方示例,还需要下载timezone 库。
timezone 是一个用来处理时区信息的,可以使得在不同平台上创建和处理日期时间对象更加方便和准确。

官方地址
https://pub-web.flutter-io.cn/packages/timezone

安装

flutter pub add timezone

初始化
就在通知辅助类NotificationHelperinitialize函数里初始化一下就行

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来说,通知样式收到苹果的限制,可以通过DarwinNotificationDetailsattachments参数来实现一些简单操作。

http://www.ritt.cn/news/9388.html

相关文章:

  • 做网站就上房山华网天下虎门今日头条新闻
  • 网站建设课程设计格式怎么上百度推广产品
  • 支持手机网站的空间西安seo阳建
  • logo在线制作网站网络营销推广微信hyhyk1效果好
  • 南通快速建站公司常见的网络营销方式有哪些
  • 做网站 工资高吗上海seo网络优化
  • 网站公司怎么做推广方案seo变现培训
  • ubuntu一键安装wordpress搜狗搜索引擎优化论文
  • 卫浴外贸版网站案例竞价推广开户多少钱
  • 做网站后端的全部步骤在线咨询
  • 中国军队建设网站云南网络推广服务
  • 做百度糯米网站的团队宁波seo网络推广咨询热线
  • 网站交互怎么做的惠州大亚湾经济技术开发区
  • 创建wordpress插件晋城seo
  • 中国建设网官方网站客服电话企业qq多少钱一年
  • 从零学习做网站淘宝店铺运营
  • 北京做企业网站的公司网络营销的含义
  • 网站引导页设计策划网络营销方案
  • 阿坝州网站制作网站搜索引擎优化方案的案例
  • 官方网站下载派的app搜索大全引擎地址
  • PHP网站开发简单实例深圳网站seo优化
  • 汉中网站建设价格山西seo和网络推广
  • 北京 网站建设|小程序|软件开发|app开发公司好用的种子搜索引擎
  • 电商设计助理工作内容广东搜索引擎优化
  • 企业网站开发合同seo关键词排名优化价格
  • 山西太原小店区疫情详细描述如何进行搜索引擎的优化
  • 网站建设html5源码百度推广代理公司广州
  • 公司企业形象设计温州seo服务
  • WordPress阿里云安装seo排名优化推广
  • 网络广告文案范文长沙专业seo优化公司