我希望當用戶打開應用程式時: 如果它過去已經連接,它會直接打開應用程式,否則如果它剛剛安裝它,那么它會打開一個登錄頁面
在 Android 作業室中,我確實喜歡這樣:
@Override
protected void onStart() {
super.onStart();
SharedPreferencesOpti sp = new SharedPreferencesOpti(this);
boolean isConnected = sp.getBooleanSharedPreferences("isConnected");
UserModel.setConnected(isConnected);
if (!UserModel.isConnected())
{
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent);
}
}
這是我的顫振代碼:
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter Demo',
initialRoute: '/',
onGenerateRoute: (settings) => RouteGenerator.generateRoute(settings),
theme: ThemeData(
primarySwatch: ColorsHelp.getPrimaryColor(),
),
home: const MyHomePage(),
);
}
}
HomePage() 是應用程式,我也有一個 LoginScreen()(LoginScreen 是一個有狀態的小部件)
但我不知道如何在 Flutter中做到這一點。我嘗試了很多東西,但沒有任何效果。
我的想法是像在 Android Studio 中一樣使用 Shared_Preferences 我認為這是一個很好的解決方案,但可能不是最好的解決方案。
uj5u.com熱心網友回復:
您可以通過確保SharedPreferences之前訪問:runApp()WidgetsFlutterBinding.ensureInitialized()
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
SharedPreferences prefs = await SharedPreferences.getInstance();
bool loggedIn = prefs.getBool("loggedIn");
runApp(MyApp(loggedIn: loggedIn);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/430632.html
上一篇:共享首選項和設定有問題
下一篇:為共享首選項用戶名定義變數的問題
