在移动开发的过程中我们会不可避免地使用到数据的持久化。当我们需要存储一些简单的数据时,我们会使用到NSUserDefaults
(iOS) 或 SharedPreferences
(Android),本文我们就来介绍这个方便的Flutter插件shared_preferences
来实现本地存储的需求。
添加依赖
要使用这个插件,首先在工程的pubspec.yaml
文件中加入对这个插件的依赖:
1 2
| dependencies: shared_preferences: ^0.5.2
|
下载插件
使用示例
1 2 3 4 5 6
| _incrementCounter() async { SharedPreferences prefs = await SharedPreferences.getInstance(); int counter = (prefs.getInt('counter') ?? 0) + 1; print('Pressed $counter times.'); await prefs.setInt('counter', counter); }
|
注意:在使用这个插件时,我们需要进行异步调用,也就是需要使用async/await。
工具类
我这里也封装了一个工具类pref_util.dart
,需要的话可以直接拷贝到工程中,可以少写一些枯燥的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| import 'package:shared_preferences/shared_preferences.dart';
setPrefString(String key, String value) async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setString(key, value); }
setPrefInt(String key, int value) async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setInt(key, value); }
setPrefDouble(String key, double value) async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setDouble(key, value); }
setPrefStringList(String key, List<String> value) async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setStringList(key, value); } setPrefBool(String key, bool value) async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setBool(key, value); }
getPrefString(String key, {String defaultValue = ''}) async { SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.getString(key) ?? defaultValue; }
getPrefInt(String key, {int defaultValue = 0}) async { SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.getInt(key) ?? defaultValue; }
getPrefDouble(String key, {double defaultValue = 0}) async { SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.getDouble(key) ?? defaultValue; }
getPrefStringList(String key, {List<String> defaultValue = const []}) async { SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.getStringList(key) ?? defaultValue; }
getPrefBool(String key, {bool defaultValue = false}) async { SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.getBool(key) ?? defaultValue; }
removePref(String key) async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.remove(key); }
prefContains(String key) async { SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.get(key) != null; }
|
本文原创地址为:https://www.examplecode.cn/2019/04/25/flutter-shared-preference/
转载请注明出处。
我的博客中关于Flutter的所有文章可以点击这里找到,欢迎关注!