Flutter

Flutter 封装存储数据

2021-03-24  本文已影响0人  景小帮

什么是shared_preferences?

shared_preferences是Flutter社区开发的一个本地数据存取插件,它有以下特性:

1.简单的,异步的,持久化的key-value存储系统;

2.在Android上它是基于SharedPreferences的;

3.在iOS上它是基于NSUserDefaults的;

shared_preferences如何使用?

在pubspec.yaml 中添加

# 数据存储        shared_preferences: ^0.5.12+4

封装代码如下:

import 'package:shared_preferences/shared_preferences.dart';

///

/// SharedPreferences 存储封装

///

class SpDataUtils {

static setDate(String key, value)async {

SharedPreferences prefs =await SharedPreferences.getInstance();

    if (valueis String) {

    prefs.setString(key, value);

    }else if (valueis num) {

    prefs.setInt(key, value);

    }else if (valueis double) {

    prefs.setDouble(key, value);

    }else if (valueis bool) {

    prefs.setBool(key, value);

    }else if (valueis List) {

    prefs.setStringList(key, value.cast());

    }

}

/// 返回数据data -> replace -> null

  static FuturegetData(String key, [dynamic replace])async {

   SharedPreferences prefs =await SharedPreferences.getInstance();

    var data = prefs.get(key);

    return data ?? replace ??null;

  }

///删除指定数据

  static void remove(String key)async {

   SharedPreferences prefs =await SharedPreferences.getInstance();

    prefs.remove(key); //删除指定键

  }

///清除数据

  static void clear()async {

   SharedPreferences prefs =await SharedPreferences.getInstance();

    prefs.clear(); ////清空缓存

  }

}

使用:

取值:

SpDataUtils.getData('isSplash',false).then((result){

});

设置值

SpDataUtils.setDate('isSplash', true);

上一篇下一篇

猜你喜欢

热点阅读