Package地址:https://pub.dev/packages/shared_preferences
目錄
- shared_preferences是什么?
- 如何使用 shared_preferences ?
- shared_preferences有哪些常用的API?
一、shared_preferences是什么?
- 1.1、shared_preferences是Flutter社區開發的一個本地數據存取插件
- 1.2、shared_preferences的特征如下
- 簡單的,異步的,持久化的key-value存儲系統
- 在Android上它是基于 SharePreferences的
- 在iOS上它是基于 NSUserDefaults
二、如何使用 shared_preferences
-
2.1、首先在 pubspec.yaml文件中添加,然后運行
flutter pub get
dependencies: shared_preferences: ^2.0.7
在使用的地方導入:
import 'package:shared_preferences/shared_preferences.dart';
-
2.2、Sharedpreferences 基本用法
提示:如果在使用的時候報錯:[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)
解決方案:如果您使用的是shared_preferences 0.2.4及更高版本,可直接在flutter項目的main方法中添加以下內容SharedPreferences.setMockInitialValues({});
-
<1>、存儲和讀取基本數據類型,下面以String為例,其他的類型不做展示
存儲saveData() async { SharedPreferences prefs = await SharedPreferences.getInstance(); int counter = 1; bool result = await prefs.setInt('counter', counter); print("存儲的結果:$result"); }
讀取
readData() async { SharedPreferences prefs = await SharedPreferences.getInstance(); final counter = await prefs.getInt('counter' ?? 0); print("取出數據:$counter"); }
刪除數據
deleteData() async { SharedPreferences prefs = await SharedPreferences.getInstance(); final result = await prefs.remove("counter"); print("刪除的結果:$result"); }
-
<2>、清空整個緩存
clear() async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.clear(); ////清空緩存 }
-
三、shared_preferences有哪些常用的API?
-
3.1、存儲相關
存儲Future<bool> setBool(String key, bool value) => _setValue('Bool', key, value); Future<bool> setInt(String key, int value) => _setValue('Int', key, value); Future<bool> setDouble(String key, double value) => _setValue('Double', key, value); Future<bool> setString(String key, String value) => _setValue('String', key, value); Future<bool> setStringList(String key, List<String> value) => _setValue('StringList', key, value);
-
3.2、讀取相關
Object? get(String key) => _preferenceCache[key]; bool? getBool(String key) => _preferenceCache[key] as bool?; int? getInt(String key) => _preferenceCache[key] as int?; double? getDouble(String key) => _preferenceCache[key] as double?; Set<String> getKeys() => Set<String>.from(_preferenceCache.keys); String? getString(String key) => _preferenceCache[key] as String?; List<String>? getStringList(String key) {......} toString();
-
3.3、刪除相關
remove(String key) {......} clear() {......}