由於目前Android手機推送通知的唯一選擇,只有Google的專有服務Firebase Cloud Messaging (FCM),因此Android開源應用程式商店F-Droid便推出替代方案UnifiedPush,讓開發者可以不仰賴任一企業服務推送通知。

推送通知對現代行動應用程式體驗非常重要,賦予應用程式能夠與用戶即時溝通的能力,但是F-Droid提到,使用Google的推送通知對用戶隱私和獨立性產生影響,導致F-Droid應用程式不能包含FCM函式庫,因此許多自由及開放原始碼軟體會在應用程式和伺服器之間,建立持久且直接的連接用以推送通知。

但這個方法存在許多限制,在應用程式和伺服器之間建立直接連接,需占用大量的裝置資源,包括電量、CPU和網路資源都會吃緊。作業系統為了要最大程度減少資源負載,通常會暫停未活躍使用的應用程式,但是當每個應用程式都與伺服器建立主動連接,則會使作業系統無法暫停這些應用程式。

況且多個應用程式都以自己的節奏Ping伺服器,便會使裝置無法進入低功耗睡眠模式,使得裝置電池更快耗盡,因此如果只由一個特殊的應用程式建立優先連接,便可以最大程度減少這些問題,也使得作業系統可以終止其他應用程式,進入睡眠狀態節省電池消耗。

而對開發人員來說,管理後臺服務和最佳化連接,是一個複雜且耗時的工作,藉由使用專門的推送通知服務,能夠減輕開發人員的負擔,使其專注在應用程式的其他部分。UnifiedPush則擔任這個專門負責推送通知的角色。

UnifiedPush的核心是一個規範,分為裝置客戶端和伺服器端,裝置客戶端定義了API使得任意終端使用者應用程式,能夠與Ntfy與NextPush等配送應用程式通訊,而UnifiedPush伺服器端API則描述,應用程式向Ntfy與Nextcloud配送伺服器發送訊息的方式。

因此對使用者來說,要在Android上獲得採用UnifiedPush的應用程式通知,需要先安裝像是Ntfy等配送應用程式,接著開啟Ntfy應用程式並且停用電池最佳化,接著在其他支援UnifiedPush的應用程式中開啟UnifiedPush,系統會自動偵測Ntfy應用程式。

UnifiedPush與RFC8030規範的WebPush原則上相容,WebPush主要是用於瀏覽器通送通知的開放標準,官方現在正在研究解決方案,以提供更穩定的WebPush支援。現在已經有越來越多應用程式支援UnifiedPush,包括許多Matrix和Mastodon應用程式,官方也正在努力讓Telegram和Signal應用程式開源版本支援UnifiedPush。

熱門新聞

Advertisement