当前位置:   article > 正文

shared_preferences使用

shared_preferences

在前端开发中经常会把服务端请求回来的数据存放到localstorage,方便接下来的操作使用,如:把token存放到localstorage中,下次发起网络请求时,把token附带到Header中。

flutter中其实和开发前端大同小异,有开发前端的基础,上手flutter会容易很多。在flutter中使用类似localstorage的功能需要在 pubspec.yaml 引入依赖。

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^0.5.6 # localstorage 用到的依赖包

接下来将其封装成工具类,方便程序中的调用。

// 导入依赖
import 'package:shared_preferences/shared_preferences.dart'; 

/// 本地存储工具类
class LocalStorage {
    
  /// 设置布尔的值
  static setBool(String key, bool value) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setBool(key, value);
  }

  /// 设置double的值
  static setDouble(String key, double value) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setDouble(key, value);
  }

  /// 设置int的值
  static setInt(String key, int value) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setInt(key, value);
  }

  /// 设置Sting的值
  static setString(String key, String value) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setString(key, value);
  }

  /// 设置StringList
  static setStringList(String key, List<String> value) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setStringList(key, value);
  }

  /// 获取返回为bool的内容
  static Future<bool> getBool(String key) async {
    final prefs = await SharedPreferences.getInstance();
    bool value = prefs.getBool(key);
    return value;
  }

  /// 获取返回为double的内容
  static Future<double> getDouble(String key) async {
    final prefs = await SharedPreferences.getInstance();
    double value = prefs.getDouble(key);
    return value;
  }

  /// 获取返回为int的内容
  static Future<int> getInt(String key) async {
    final prefs = await SharedPreferences.getInstance();
    int value = prefs.getInt(key);
    return value;
  }

  /// 获取返回为String的内容
  static Future<String> getString(String key) async {
    final prefs = await SharedPreferences.getInstance();
    String value = prefs.getString(key);
    return value;
  }

  /// 获取返回为StringList的内容
  static Future<List<String>> getStringList(String key) async {
    final prefs = await SharedPreferences.getInstance();
    List<String> value = prefs.getStringList(key);
    return value;
  }

  /// 移除单个
  static remove(String key) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.remove(key);
  }

  /// 清空所有
  static clear() async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.clear();
  }
}

在程序用使用

// 定义变量
String token;
// 发起登录请求
User.login("admin", "123456").then((value) async => {
    print("token:$value"),
    // 登录成功,设置token到localstorage中
    LocalStorage.setString("token", value),
    // 从localstorage中获取 token
    token = await LocalStorage.getString("token"),
    print("localtoken:$token")
});

工具类封装的方法都是静态方法,可以直接用类名.方法名调用,flutter是由dart语言所写,和javascript有很多相似之处。

以上就是localstorage在flutter中的应用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/308765
推荐阅读
相关标签
  

闽ICP备14008679号