Android 颤振小部件不会在通知单击时呈现

Android 颤振小部件不会在通知单击时呈现,android,ios,firebase,flutter,firebase-notifications,Android,Ios,Firebase,Flutter,Firebase Notifications,我正在使用firebase\u消息和flatter\u local\u通知库进行通知,一切正常。但在安卓系统中,如果一个应用程序从应用程序堆栈中删除(从最近的活动中删除幻灯片),我就会收到通知并点击它,小部件就不会正确呈现,按钮导航、应用程序栏、文本都会消失 @override Widget build(BuildContext context) { return LayoutBuilder(builder: (_, constraints) { return OrientationB

我正在使用firebase\u消息flatter\u local\u通知库进行通知,一切正常。但在安卓系统中,如果一个应用程序从应用程序堆栈中删除(从最近的活动中删除幻灯片),我就会收到通知并点击它,小部件就不会正确呈现,按钮导航、应用程序栏、文本都会消失

 @override
 Widget build(BuildContext context) {

return LayoutBuilder(builder: (_, constraints) {
  return OrientationBuilder(builder: (_, orientation) {
    SizeConfig().init(constraints, orientation);
    return MultiBlocProvider(
        providers: [
          BlocProvider(create: (_)=>_mainAppBarBloc),
          BlocProvider(create: (_) => _hadyahBloc),
   
        ],
        child:MultiBlocListener(
            listeners: [
              BlocListener<HadyahBloc,HadyahState>(
                listener: (_,state){
                  state.whenPartial(
                    getLanguage: (s){
                      var locale = _hadyahBloc.changeLanguage(s.language);
                      setLocale(locale);
                    },
                  );
                },
              ),
            ],
            child: MaterialApp(
              key: _mKey,
              navigatorObservers: [
                sl<FirebaseAnalyticsService>().getObserver(),
              ],
              builder: (context,_){
                return Scaffold(
                  key: _scaffoldkey,
                  body: Container(
                    color: Colors.white,
                    child: ExtendedNavigator<Router>(
                      router: Router(),
                      key: navigatorKey,
                      initialRoute: Routes.screenNavigatorHandler,
                    ),
                  ),
                );
              },
              locale: _locale,
              supportedLocales: [
                Locale('en','GB'),//english united kingdom
                Locale('ar','SA')// arabic
              ],
              localizationsDelegates: [
                Localization.delegate,
                GlobalMaterialLocalizations.delegate,
                GlobalWidgetsLocalizations.delegate,
                GlobalCupertinoLocalizations.delegate
              ],
              localeResolutionCallback: (Locale locale, Iterable<Locale> supportedLocales) {
                if (locale == null) {
                  return supportedLocales.first;
                }

                for (Locale supportedLocale in supportedLocales) {
                  if (supportedLocale.languageCode == locale.languageCode ||
                      supportedLocale.countryCode == locale.countryCode) {
                    return supportedLocale;
                  }
                }

                return supportedLocales.first;
              },
              debugShowCheckedModeBanner: false,
              title: 'App',
              theme: ThemeData(
                  cupertinoOverrideTheme: CupertinoThemeData(
                    primaryColor: colorPrimary,
                  ),
                  accentColor: Colors.white,
                  appBarTheme:
                  AppBarTheme(textTheme: TextTheme(title: appBarTextStyle)),
                  primarySwatch: colorWhite,
                  dialogTheme: DialogTheme(
                    titleTextStyle: textStyleDisplay2,
                    contentTextStyle: body1TextStyle,
                  ),
                  textTheme: TextTheme(
                      title: appBarTextStyle,
                      body1: body1TextStyle,
                      body2: body2TextStyle,
                      button: buttonTextStyle,
                    ),
                  inputDecorationTheme: InputDecorationTheme(
                      border: inputFocusedBorder,
                      isDense: true,
                      alignLabelWithHint: true,
                      floatingLabelBehavior: FloatingLabelBehavior.never,
                      focusedBorder: inputFocusedBorder,
                      enabledBorder: inputEnabledBorder,
                      errorBorder: errorFocusedBorder,
                      focusedErrorBorder: errorFocusedBorder,
                      errorStyle: errorLabelStyle,
                      labelStyle: inputLabelTextStyle
                  )
              ),
              onGenerateRoute: Router().onGenerateRoute,
              navigatorKey:  navigatorKey,
              initialRoute: Routes.screenNavigatorHandler,
            )
        )
    );
  });
});
}

final connector = createPushConnector();
Future<void> configurePushConnector(HadyahBloc bloc)async{
try{
connector.configure(
  onLaunch: _onLaunch,
  onResume: _onResume,
  onMessage: _onMessage,
  onBackgroundMessage: _onMessage,
);
connector.token.addListener((){
  var token=connector.token.value;
  if(token!=null){
    bloc.setFCMToken(token);
  }
  print('Token ${connector.token.value}');
});
connector.requestNotificationPermissions();

  }catch(e){
  print(e);
 }
}

void _navigateToPage(Map<String,dynamic> notificationData)async{
try{

final platform=Theme.of(_mKey.currentContext).platform;
if(platform==TargetPlatform.android){
  if(notificationData['data']['type']==ORDER_STATUS_UPDATED){
    ExtendedNavigator.ofRouter<Router>().pushNamed(
        Routes.trackOrderPage,
        arguments: int.parse(notificationData['data']['order_id'])
    );
  }
}else if(platform==TargetPlatform.iOS){
  if(notificationData['type']==ORDER_STATUS_UPDATED){
    print('type orn ${notificationData['type']}');
    ExtendedNavigator.ofRouter<Router>().pushNamed(
        Routes.trackOrderPage,
        arguments:notificationData['order_id']
    );
  }else{
    print(' else type orn ${notificationData['type']}');
  }
}
}catch(e){
print('notification error $e');
}

}
Future<dynamic> _onLaunch(Map<String,dynamic> 
notificationData)async{
await Future.delayed(Duration(milliseconds: 1500));
_navigateToPage(notificationData);
return Future.value();
}
@覆盖
小部件构建(构建上下文){
返回布局生成器(生成器:(\u,约束){
返回方向生成器(生成器:(u,方向){
SizeConfig().init(约束、方向);
返回多BlocProvider(
供应商:[
BlocProvider(创建:(),
BlocProvider(创建:()=>hadyahBloc),
],
孩子:多布卢克利斯滕(
听众:[
布洛克斯腾纳(
监听器:(\uz,状态){
州政府(
语文:(s){
var locale=_hadyahBloc.changeLanguage(s.language);
setLocale(locale);
},
);
},
),
],
孩子:MaterialApp(
钥匙:_mKey,
导航观察者:[
sl().getObserver(),
],
构建器:(上下文,ux){
返回脚手架(
钥匙:_scaffoldkey,
主体:容器(
颜色:颜色,白色,
子项:ExtendedNavigator(
路由器:路由器(),
关键:导航工作,
initialRoute:Routes.screenNavigatorHandler,
),
),
);
},
地区:_地区,
支持的区域设置:[
地区('en','GB'),//英国英语
语言环境('ar','SA')//阿拉伯语
],
本地化授权:[
各位代表,
GlobalMaterialAllocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
globalSuperTinoLocalizations.delegate
],
localeResolutionCallback:(Locale,Iterable supportedLocales){
if(locale==null){
返回supportedLocales.first;
}
for(语言环境supportedLocales中的语言环境supportedLocale){
如果(supportedLocale.languageCode==locale.languageCode||
supportedLocale.countryCode==locale.countryCode){
返回支持的语言环境;
}
}
返回supportedLocales.first;
},
debugShowCheckedModeBanner:false,
标题:“应用程序”,
主题:主题数据(
cupertinoOverrideTheme:CupertinoThemeData(
primaryColor:colorPrimary,
),
颜色:颜色。白色,
appBarTheme:
AppBarTheme(文本主题:文本主题(标题:appBarTextStyle)),
primarySwatch:颜色为白色,
对话主题:对话主题(
titleTextStyle:textStyleDisplay2,
contentTextStyle:body1TextStyle,
),
textTheme:textTheme(
标题:appBarTextStyle,
body1:body1TextStyle,
body2:body2TextStyle,
按钮:ButtonExtStyle,
),
inputDecorationTheme:inputDecorationTheme(
边框:InputFocusedBordOrder,
是的,
alignLabelWithHint:正确,
浮动LabelBehavior:浮动LabelBehavior.never,
FocusedOrder:InputFocusedOrder,
enabledBorder:inputEnabledBorder,
errorBorder:ErrorFocusedOrder,
focusedErrorBorder:ErrorFocusedOrder,
errorStyle:errorLabelStyle,
labelStyle:inputLabelTextStyle
)
),
onGenerateRoute:Router().onGenerateRoute,
导航工作:导航工作,
initialRoute:Routes.screenNavigatorHandler,
)
)
);
});
});
}
最终连接器=createPushConnector();
未来配置PushConnector(HadyahBloc bloc)异步{
试一试{
connector.configure(
onLaunch:_onLaunch,
onResume:_onResume,
onMessage:_onMessage,
onBackgroundMessage:_onMessage,
);
connector.token.addListener((){
var token=connector.token.value;
if(令牌!=null){
集团setFCMToken(代币);
}
打印('Token${connector.Token.value}');
});
connector.requestNotificationPermissions();
}捕获(e){
印刷品(e);
}
}
void_navigatePage(地图通知数据)异步{
试一试{
最终平台=Theme.of(_mKey.currentContext).platform;
if(platform==TargetPlatform.android){
如果(notificationData['data']['type']==订单状态更新){
ExtendedNavigator.ofRouter().PushName(
Routes.trackOrderPage,
参数:int.parse(notificationData['data']['order_id']))
);
}
}else if(platform==TargetPlatform.iOS){
如果(notificationData['type']==订单状态更新){
打印('type orn${notificationData['type']}');
ExtendedNavigator.ofRouter().PushName(
Routes.trackOrderPage,
参数:notificationData['order_id']
);
}否则{
打印('else type orn${notificationData['type']}');
}
}
}捕获(e){
打印(“通知错误$e”);
}
}
未来发射(地图)
notificationData)异步{
等待未来。延迟(持续时间(毫秒:1500));
_导航页面(通知数据);
返回Future.value();
}