中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

做網(wǎng)站銷售 優(yōu)幫云不受國(guó)內(nèi)限制的瀏覽器

做網(wǎng)站銷售 優(yōu)幫云,不受國(guó)內(nèi)限制的瀏覽器,wordpress查看圖片插件,彩票網(wǎng)站怎么做代理前言 注: 剛開始學(xué)習(xí),如果某些案例使用時(shí)遇到問題,可以自行百度、查看官方案例、官方github。 簡(jiǎn)介 Flutter Local Notifications是一個(gè)用于在Flutter應(yīng)用程序中顯示本地通知的插件。它提供了一個(gè)簡(jiǎn)單而強(qiáng)大的方法來在設(shè)備上發(fā)送通知&#…

前言

注: 剛開始學(xué)習(xí),如果某些案例使用時(shí)遇到問題,可以自行百度、查看官方案例、官方github。

簡(jiǎn)介
Flutter Local Notifications是一個(gè)用于在Flutter應(yīng)用程序中顯示本地通知的插件。它提供了一個(gè)簡(jiǎn)單而強(qiáng)大的方法來在設(shè)備上發(fā)送通知,以便用戶可以在應(yīng)用程序處于后臺(tái)或設(shè)備鎖定狀態(tài)下接收到它們。

使用Flutter Local Notifications插件,可以創(chuàng)建和安排各種類型的通知,包括:

  1. 即時(shí)通知:立即顯示的通知,用于向用戶傳達(dá)重要消息或提醒。
  2. 周期性通知:可以按照指定的時(shí)間間隔重復(fù)顯示的通知,例如每天或每周的提醒。
  3. 定時(shí)通知:在特定日期和時(shí)間觸發(fā)的通知,用于安排未來事件或提醒。

通過使用Flutter Local Notifications,可以自定義通知的外觀和行為,包括標(biāo)題,內(nèi)容,圖標(biāo),聲音,振動(dòng)模式和點(diǎn)擊操作。此外,還可以處理用戶與通知的交互,例如當(dāng)用戶點(diǎn)擊通知時(shí)執(zhí)行特定的操作。

Flutter Local Notifications插件使用簡(jiǎn)單且易于集成到Flutter項(xiàng)目中。它提供了一組易于使用的API,可以輕松創(chuàng)建和管理通知。此外,它還兼容Android和iOS平臺(tái),并且可以在兩個(gè)平臺(tái)上以相同的代碼庫進(jìn)行操作。

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

備注: 這里只學(xué)習(xí)關(guān)于安卓的基本使用

學(xué)習(xí)

準(zhǔn)備

安裝

flutter pub add flutter_local_notifications

即時(shí)通知

通知輔助類
NotificationHelper

// 導(dǎo)入包
import 'package:flutter_local_notifications/flutter_local_notifications.dart';class NotificationHelper {// 使用單例模式進(jìn)行初始化static final NotificationHelper _instance = NotificationHelper._internal();factory NotificationHelper() => _instance;NotificationHelper._internal();// FlutterLocalNotificationsPlugin是一個(gè)用于處理本地通知的插件,它提供了在Flutter應(yīng)用程序中發(fā)送和接收本地通知的功能。final FlutterLocalNotificationsPlugin _notificationsPlugin =FlutterLocalNotificationsPlugin();// 初始化函數(shù)Future<void> initialize() async {// AndroidInitializationSettings是一個(gè)用于設(shè)置Android上的本地通知初始化的類// 使用了app_icon作為參數(shù),這意味著在Android上,應(yīng)用程序的圖標(biāo)將被用作本地通知的圖標(biāo)。const AndroidInitializationSettings initializationSettingsAndroid =AndroidInitializationSettings('@mipmap/ic_launcher');// 15.1是DarwinInitializationSettings,舊版本好像是IOSInitializationSettings(有些例子中就是這個(gè))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:用于指定通知的重要性,設(shè)置為最高級(jí)別。// Priority.high:用于指定通知的優(yōu)先級(jí),設(shè)置為高優(yōu)先級(jí)。// 'ticker':用于指定通知的提示文本,即通知出現(xiàn)在通知中心的文本內(nèi)容。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, // 通知分類);// 創(chuàng)建跨平臺(tái)通知const NotificationDetails platformChannelSpecifics =NotificationDetails(android: androidNotificationDetails,iOS: iosNotificationDetails);// 發(fā)起一個(gè)通知await _notificationsPlugin.show(1,title,body,platformChannelSpecifics,);}
}

使用

main() async {//用于確保Flutter的Widgets綁定已經(jīng)初始化。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("發(fā)起通知")));}
}

注意:

  • 一定要在main函數(shù)里進(jìn)行初始化,不然會(huì)報(bào)下面這個(gè)錯(cuò)誤(百度了半天,最后發(fā)現(xiàn)是自己忘記了初始化)
    在這里插入圖片描述
  • 要開啟應(yīng)用的通知權(quán)限,不然可能無法通知

在這里插入圖片描述

周期性通知

 // 周期性通知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, // 通知分類);// 創(chuàng)建跨平臺(tái)通知const NotificationDetails platformChannelSpecifics = NotificationDetails(android: androidNotificationDetails, iOS: iosNotificationDetails);
// 發(fā)起通知await _notificationsPlugin.periodicallyShow(id, title, body, RepeatInterval.everyMinute, platformChannelSpecifics);}
}

這里我設(shè)置的是每分鐘通知一次,注意:假如你在10:01發(fā)起了通知,10:01不會(huì)有通知消息,而是從10:02開發(fā)每隔一分鐘發(fā)起一次通知。

定時(shí)通知

// 定時(shí)通知
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, // 通知分類);// 創(chuàng)建跨平臺(tái)通知const NotificationDetails platformChannelSpecifics = NotificationDetails(android: androidNotificationDetails, iOS: iosNotificationDetails);// 發(fā)起通知await _notificationsPlugin.zonedSchedule(id, title, body,tz.TZDateTime.from(scheduledDateTime, tz.local), // 使用本地時(shí)區(qū)的時(shí)間platformChannelSpecifics,uiLocalNotificationDateInterpretation:UILocalNotificationDateInterpretation.absoluteTime, // 設(shè)置通知的觸發(fā)時(shí)間是覺得時(shí)間);
}

注意:如下圖參數(shù)scheduledDateTZDateTime類型,看了一下官方示例,還需要下載timezone 庫。
timezone 是一個(gè)用來處理時(shí)區(qū)信息的,可以使得在不同平臺(tái)上創(chuàng)建和處理日期時(shí)間對(duì)象更加方便和準(zhǔn)確。

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

安裝

flutter pub add timezone

初始化
就在通知輔助類NotificationHelperinitialize函數(shù)里初始化一下就行

import 'package:timezone/timezone.dart' as tz;
import 'package:timezone/data/latest.dart' as tz;//  初始化tz
tz.initializeTimeZones();

在這里插入圖片描述
在這里插入圖片描述

其他

除了上面三種外還有其他的通知形式,比如(以下內(nèi)容沒有測(cè)試)

長(zhǎng)文本

final androidPlatformChannelSpecifics = AndroidNotificationDetails('channel_id','channel_name','channel_description',styleInformation: BigTextStyleInformation('大文本內(nèi)容'),
);

大圖片

final androidPlatformChannelSpecifics = AndroidNotificationDetails('channel_id','channel_name','channel_description',styleInformation: BigPictureStyleInformation(FilePathAndroidBitmap('圖片路徑'),largeIcon: FilePathAndroidBitmap('大圖標(biāo)路徑'),),
);

還有一些比如媒體樣式、帶進(jìn)度條的等都可以在AndroidNotificationDetails找到相應(yīng)的參數(shù)。
對(duì)于IOS來說,通知樣式收到蘋果的限制,可以通過DarwinNotificationDetailsattachments參數(shù)來實(shí)現(xiàn)一些簡(jiǎn)單操作。

http://www.risenshineclean.com/news/47976.html

相關(guān)文章:

  • wordpress網(wǎng)頁怎么上傳到服務(wù)器錯(cuò)誤上海高玩seo
  • 展示網(wǎng)站欣賞百度怎么注冊(cè)公司網(wǎng)站
  • 在門戶網(wǎng)站上做推廣百度瀏覽器官網(wǎng)在線使用
  • 免費(fèi)空間使用指南抖音搜索排名優(yōu)化
  • 實(shí)時(shí)爬蟲網(wǎng)站是怎么做的蘇州網(wǎng)站seo服務(wù)
  • 自貢訂房中心網(wǎng)站建設(shè)aso優(yōu)化是什么
  • 怎么建站網(wǎng)站百度愛采購關(guān)鍵詞優(yōu)化
  • 網(wǎng)站建設(shè)1選宙斯站長(zhǎng)東莞疫情最新消息今天新增
  • 怎么在word上做超鏈接網(wǎng)站2345網(wǎng)址導(dǎo)航下載桌面
  • 芷江建設(shè)工程招投標(biāo)網(wǎng)站b2b和b2c是什么意思
  • 網(wǎng)站做關(guān)鍵詞排名有必要嗎企業(yè)郵箱入口
  • 便宜虛擬主機(jī)做網(wǎng)站備份搜索引擎營(yíng)銷是指
  • aspx網(wǎng)站開發(fā) 案例網(wǎng)站代運(yùn)營(yíng)推廣
  • 微營(yíng)銷是什么seo如何快速排名百度首頁
  • 網(wǎng)站建設(shè)用的服務(wù)器統(tǒng)計(jì)網(wǎng)站流量的網(wǎng)站
  • 重慶網(wǎng)站建設(shè)近重慶零臻科技seo網(wǎng)站優(yōu)化報(bào)價(jià)
  • web網(wǎng)站開發(fā)里怎么切換界面域名seo站長(zhǎng)工具
  • 如何快速做網(wǎng)站排名網(wǎng)絡(luò)營(yíng)銷優(yōu)化培訓(xùn)
  • 哪些網(wǎng)站可以做詳情頁企業(yè)關(guān)鍵詞大全
  • 印刷網(wǎng)站模板下載湛江百度seo公司
  • wordpress模板自媒體seo推廣軟件排行榜前十名
  • 網(wǎng)站認(rèn)證打的錢怎么做分錄重慶百度推廣seo
  • 合同 制作 網(wǎng)站網(wǎng)絡(luò)營(yíng)銷好找工作嗎
  • 文章博客媒體網(wǎng)站模板小學(xué)生收集的新聞10條
  • wordpress 網(wǎng)站主題太原seo團(tuán)隊(duì)
  • 加盟網(wǎng)站開發(fā)費(fèi)用谷歌seo培訓(xùn)
  • 登陸國(guó)外的網(wǎng)站要這么做百度推廣投訴人工電話
  • 自助式建網(wǎng)站游戲推廣員上班靠譜嗎
  • 廣西建設(shè)職業(yè)學(xué)院官網(wǎng)網(wǎng)站網(wǎng)絡(luò)營(yíng)銷策劃案怎么寫
  • 第三方微信網(wǎng)站建設(shè)全國(guó)人大常委會(huì)