.NET
MAUI(Multi-platform App UI)從 .NET 6 開始成為微軟主推的跨平台 UI 框架。只要寫一套 C# 與 XAML,就能編譯出
Android、iOS、macOS 與 Windows 的原生 App,取代了過去的 Xamarin.Forms。
雖然號稱「一次編寫,可多平台執行」,但現實是各平台的底層差異很大。為了維持框架核心的輕量,官方的Microsoft.Maui.Essentials只提供了最基礎的硬體呼叫功能(例如網路狀態、GPS、相機)。很多開發上必備的進階功能,像是本地通知、藍牙、或是背景常駐服務,官方目前都沒有直接內建,而是交由社群的 Plugin 來解決。
其中,「本地通知」幾乎是大部分 App 遲早會用到的功能。本地通知跟需要架設後端伺服器、申請憑證的遠端推播(FCM / APNs)不同,本地通知完全由裝置本機觸發,不需要網路連線。常見的應用場景包括:
● 行事曆提醒、鬧鐘
● 背景下載或資料同步完成的提示
● 離線狀態下的使用者互動
既然官方(包含
.NET MAUI Community Toolkit)都還沒提供這個功能,在目前的 MAUI 生態系中,由社群維護的
Plugin.LocalNotification 幾乎是唯一的首選。這套件成熟度高,且支援四大平台。
這篇文章將以 Plugin.LocalNotification 14.1 為例,紀錄如何從零實作跨平台的本地通知服務,順便整理各平台最常遇到問題的底層設定。