Flutter的本地端通知(透過flutter_local_notifications套件)

這篇來紀錄一下如何在flutter中新增本地端通知的實作方式。

安裝套件

於專案的根目錄下執行以下指令安裝「flutter_local_notifications」套件

>> flutter pub add flutter_local_notifications

安裝完成後,pubspec.yaml檔中應該會自動加入以下的套件依賴關係

flutter_local_notifications: ^13.0.0

使用套件

import

於程式中,import這個套件

import 'package:flutter_local_notifications/flutter_local_notifications.dart';

初始化套件

宣告

FlutterLocalNotificationsPlugin localNotificaition = FlutterLocalNotificationsPlugin();

初始化不同平台的行動裝置

//建立Android與iOS的初始設定資料
var android = const AndroidInitializationSettings('ic_launcher');
//必須要確認圖形的原始檔確實存在,否則執行時會有找不到資源的錯誤訊息而導致執行失敗

//var ios = const IOSInitializationSettings();  
//我沒有ios裝置,因此這個部份就先mark掉

var initializationSettings = new InitializationSettings(android: android);
//如果有iOS的部份改為以下程式
//var initializationSettings = new InitializationSettings(android: android, iOS:ios);

localNotificaition.initialize(InitializationSettings(android:android));
//如果有iOS的部份改為以下程式
//localNotificaition.initialize(InitializationSettings(android:android, iOS:ios));

建構所要傳送的通知規格

var androidDetails = const AndroidNotificationDetails(
    'channel id',
    'channel name',
    importance: Importance.max,
    priority: Priority.high
);

//var iosDetails = const IOSNotifications();
//我沒有ios裝置,因此這個部份就先mark掉

var details = NotificationDetails(
    android: androidDetails,
    iOS: iosDetails
);

發送訊息

localNotificaition.show(
  DateTime.now().millisecondsSinceEpoch >> 10, 
  '訊息標題', 
  '訊息內容', 
  details  //剛才的訊息通知規格變數
);