[英]Open Flutter app based on notification data?
如何使用FirebaseMessaging
根據通知數據打開 flutter 應用程序?
因此,當我點擊通知(通過Firebase Messaging
接收)時,消息處理程序應評估數據並根據它們打開應用程序。 目前它是asynchronous
的,這意味着應用程序啟動並且通知處理程序繼續工作。
重要的是要知道,不能使用Navigator.push
,因為有一個重要的應用程序設置屏幕,它會在應用程序啟動時檢查 auth state 等。 如何解決這個問題?
當您從設備的通知中心點擊通知時,操作系統將啟動應用程序,當然前提是您已按照說明正確設置了 Firebase 消息傳遞, onLaunch
或onMessage
函數將被調用。
現在,由於 firebase 消息已盡可能早地配置,通常在 flutter 應用程序的main
條目中,您需要先將通知存儲在某處。 這可以是在使用它的任何對象之前創建的全局 state object。
final notifications = <NotificationData>[]; // globally accessible (i.e. via Provider)
然后在消息的處理程序中......
NotificationData onMessage(Map<String, dynamic> data) {
notifications.add(NotificationData.fromJson(data));
}
flutter 應用程序將啟動, MaterialApp
將被構建。 此時,您可以有一個加載屏幕來檢查用戶是否已通過身份驗證或notifications
全局 state 中的任何新消息。 如果有,您可以路由到頁面以顯示通知,或者讓用戶登錄然后路由到通知頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.