美文网首页Flutter初探
Flutter-本地存储shared_preferences

Flutter-本地存储shared_preferences

作者: IIronMan | 来源:发表于2021-09-15 17:01 被阅读0次

    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() {......}
      

    相关文章

      网友评论

        本文标题:Flutter-本地存储shared_preferences

        本文链接:https://www.haomeiwen.com/subject/xoakgltx.html