赞
踩
在前端开发中经常会把服务端请求回来的数据存放到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中的应用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。