解决方案 1
这是我的应用程序存储数据的方式:
创建一个新的 dart 文件来存储像这样的“全局”变量,并将所有“会话”数据存储在那里:
class SessionData{
String encryptedUserId;
String encryptedPassword;
String encryptedToken;
int userId;
}
SessionData globalSessionData;
//Having a clear function is pretty handy
void clearSessionData(){
globalSessionData = new SessionData();
}
如果您将文件命名为例如global.dart 导入它,读取和写入非永久性数据(持续到应用关闭):
import 'global.dart' as global;
global.globalSessionData = ...;
//If you want to clear it:
global.clearSessionData();
解决方案 2
如果您想在应用程序关闭的情况下保留数据,有两种方法可以做到这一点:
解决方案 2a
使用sharedPrefences 在用户设备上存储和检索关键数据值:
import 'package:shared_preferences/shared_preferences.dart';
final SharedPreferences prefs = await SharedPreferences.getInstance();
//Write different types of data
await prefs.setBool("male", true);
await prefs.setDouble("key", 7.0);
await prefs.setString("username", "Mr. User");
//Retrive different types of data
prefs.getBool("male");
prefs.getDouble("key");
prefs.getString("username");
解决方案 2b
使用sqflite 存储高级数据结构,因为它是一个功能齐全的数据库。
Flutter 在using SQLite with flutter 上有一个很棒的教程。虽然如果您使用这种类型的解决方案,您必须了解 一点 SQL。