我有一個應用程式保存在設備的本地存盤中,利用 glutton: ^2.0.0 在除錯模式下一切正常,但是當我編譯 APK 時,我運行應用程式并從應用程式管理器關閉它,當我重新運行應用程式 Main 方法的邏輯不起作用。
有任何想法嗎?
void main() async {
//VARIABLES
String jsonDatos='';
String _defaultHome = '/loguin';
//INTENTAR
try {
//EXISTE LA VARIABLE
bool isExist = await Glutton.have('logueado');
//EXISTE LA VARIABLE
if (isExist){
//OBTENER VALOR
bool? logueado = await Glutton.vomit('logueado');
//SI NO ES NUL NI FALSE
if (logueado==null || logueado==false) {
//PAGINA DE LOGUEO
_defaultHome= '/loguin';
}else{//SI ES TRUE
//ASIGNAR VALOR
jsonDatos=await Glutton.vomit('jsdatos');
//PARSEADO DEL JSON
final dynamic clsDatosUsuario= jsonDecode(jsonDatos);
//SI TIENE COORDENADAS REGISTRADAS
if (clsDatosUsuario[0]["LATITUD"]!=""){
//PAGINA PRINCIPAL
_defaultHome= '/principal';
}else{
//PAGINA DE COORDENADAS
_defaultHome= '/terminostexto';
}
}
//SI NOEXISTE LA VARIABLE
}else{
//PAGINA DE LOGUEO
_defaultHome='/loguin';
}
} catch (error) {//SI HA CAMBIADO EL KEY
//PAGINA DE LOGUEO
_defaultHome= '/loguin';
} //SI HA CAMBIADO EL KEY
runApp(LoginUiApp(initialRoute: _defaultHome));
}
class LoginUiApp extends StatelessWidget {
final String initialRoute;
//COLORES DEL HEADER
final Color _primaryColor = HexColor('#002981');
final Color _accentColor = HexColor('#002981');
//final Color _encabezadoTabla = HexColor('#002981');
//COLOR PARA EL FOOTER
final Color _footeColor = HexColor('#D50000');
LoginUiApp({Key? key, required this.initialRoute} ) : super(key: key);
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
//MANEJO DE IDIOMAS
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate
],
/*supportedLocales:const [
Locale('en'),
Locale('es')
],*/
//MANEJO DE IDIOMAS
//QUITAR DEBUB
debugShowCheckedModeBanner: false,
//RUTAS
routes: {
'/loguin': (context) => const LoginPage(),
'/terminos': (context) => const TerminosPage(),
'/terminostexto': (context) => const TerminosTextoPage(),
'/acerca': (context) => const AcercaPage(),
'/contacto': (context) => const ContactoPage(),
'/miubicacion': (context) => const MiUbicacionPage(),
'/miubicacionmapa': (context) => const MiUbicacionMapaPage(),
'/buscarfamilias': (context) => const BuscarFamiliasPage(),
'/familiasencontradasmapa': (context) => const FamiliasEncontradasMapaPage(),
'/principal': (context) => const PrincipalPage() ,
'/pagina2': (context) =>const Pagina2Page()
},
builder: OneContext().builder,
navigatorKey: OneContext().key,
title: 'CovoiturageLF',
theme: ThemeData(
primaryColor: _primaryColor,
secondaryHeaderColor: _footeColor,
scaffoldBackgroundColor: Colors.grey.shade100, colorScheme: ColorScheme.fromSwatch(primarySwatch: Colors.grey).copyWith(secondary: _accentColor),
),
initialRoute: initialRoute,
//home: const SplashPage(),
);
}
}```
uj5u.com熱心網友回復:
WidgetsFlutterBinding.ensureInitialized()在主目錄中添加為第一行
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// your code
如果您想了解原因,請查看此鏈接https://stackoverflow.com/a/63873689/12156637
請注意,Glutton 也使用通道方法
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/408720.html
標籤:
上一篇:使用SharedPreferences和Firebase身份驗證關閉應用程式時如何防止用戶被要求重新登錄
下一篇:Python燒瓶應用程式登錄
