如何创建 sharedpreferences 类并在我的 Flutter 应用程序中随处使用它

gur*_*pta 4 flutter

怎么做,请给个思路。它就像一个可以被其他所有类访问的全局类,我实际上想构建一个 util 类,以便所有这些东西都只在那里,我可以只用 util 类的对象来调用这些东西。

看这就是我一直在做的

SharedPreferences sharedPreferences;

sharedPreferences = await SharedPreferences.getInstance();
                      sharedPreferences.setString('uwr_name', ctrUwrName.text);
                      getCredential();
Run Code Online (Sandbox Code Playgroud)

这个 getCredentail() 方法我已经在我想要来自 sharePref 的数据的地方调用了。但我不知道我需要在设置数据时调用它,如果我在设置数据时不把它sharedpref 会报错

getCredential() async {
  sharedPreferences = await SharedPreferences.getInstance();
}
Run Code Online (Sandbox Code Playgroud)

Rav*_*mar 7

尝试shared_preferences。然后你可以像这样创建你的util类,

class SessionManager {
  final String auth_token = "auth_token";

//set data into shared preferences like this
  Future<void> setAuthToken(String auth_token) async {
    final SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setString(this.auth_token, auth_token);
  }

//get value from shared preferences
  Future<String> getAuthToken() async {
    final SharedPreferences pref = await SharedPreferences.getInstance();
    String auth_token;
    auth_token = pref.getString(this.auth_token) ?? null;
    return auth_token;
  }
}
Run Code Online (Sandbox Code Playgroud)

在 setAuthToken 方法中设置值,

 SessionManager prefs =  SessionManager();
 prefs.setAuthToken(welcome.data.auth_token);
Run Code Online (Sandbox Code Playgroud)

从 getAuthToken 方法中获取价值,

 Future<String> authToken = prefs.getAuthToken();
 authToken.then((data) {
 print("authToken " + data.toString());
 },onError: (e) {
     print(e);
 });

Run Code Online (Sandbox Code Playgroud)

我已经创建了这个要点供您使用。