在MaterialApp
构造函数中,我在builder
方法中注入了一个小部件来处理推送通知。(使用another_flushbar
)但是我需要在上下文中有一个导航器,MaterialApp
的构建器在导航器上方注入,所以当我尝试使用它来推送我的通知栏时,没有可通过上下文访问的导航器。
当然,我可以用我的通知处理小部件来 Package 应用的每个屏幕,但这违背了我的初衷。我想要一个小部件,它在应用运行时总是显示在屏幕上,而且无论我在应用中的什么地方,它都能显示我的通知栏。
你知道我该怎么做吗?
1条答案
按热度按时间polhcujo1#
下面是我解决这个问题的方法,同时仍然使用
MaterialApp
的builder
将我的NotificationHandler
小部件注入到Navigator
之上。1.我的
NotificationHandler
小部件接受GlobalKey<NavigatorState> navigatorKey
属性1.当我在
MaterialApp
的builder
中初始化我的NotificationHandler
小部件时,我传递给它GoRouter.routerDelegate.navigatorKey
1.在
NotificationHandler
内部,当我需要一个上面有Navigator的上下文时,我使用navigatorKey.currentContext
而不是本地小部件上下文。该解决方案的灵感来自this issue。