Flutter-本地存储shared_preferences

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 setBool(String key, bool value) => _setValue('Bool', key, value);
    
    Future setInt(String key, int value) => _setValue('Int', key, value);
    
    Future setDouble(String key, double value) =>
    _setValue('Double', key, value);
    
    Future setString(String key, String value) =>
    _setValue('String', key, value);
    
    Future setStringList(String key, List 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 getKeys() => Set.from(_preferenceCache.keys);
    
    String? getString(String key) => _preferenceCache[key] as String?;
    
     List? getStringList(String key) {......}
    
     toString();
    
  • 3.3、删除相关

    remove(String key) {......}
    
    clear() {......}
    

你可能感兴趣的:(Flutter-本地存储shared_preferences)