flutter shared_preferences數據存儲


flutter中經常也會用到數據存儲,shared_preferences能夠很好的解決小數據存儲的問題 相當於在iOS中的NSUserDefaults,在Android原生中好像就叫SharedPreferences 關於怎么創建和初始化等一些基礎的我這里就不再贅述了,有需要了解的請參考:shared_preferences 具體使用我就直接上代碼了,這個是工程中一段用來存儲用戶登錄信息的存儲過程 包括保存、讀取、移除等

import 'dart:convert';
import 'package:flutte_xms/model/usermodel.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'const.dart';

class UserManager {
  // 工廠模式
  factory UserManager() =>_getShared();
  static UserManager get shared => _getShared();
  static UserManager _shared;
  UserManager._internal() {
    // 初始化
  }
  static UserManager _getShared() {
    if (_shared == null) {
      _shared = UserManager._internal();
    }
    return _shared;
  }

  UserInfo _userInfo;

  //用戶信息
  get userInfo => _userInfo;
  //用戶登陸狀態
  get isLogin => (_userInfo == null) ? false : true;

  //獲取用戶數據
  Future readUserInfo() async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    final jsonStr = pref.getString(DataConst.KEY_UserInfo);
    // print(jsonStr);
    if (jsonStr != null && jsonStr.length > 0) {
      Map json = jsonDecode(jsonStr);
      final model = UserInfo.fromJson(json);
      //保存model的值
      _userInfo = model;
      return model;
    }
    return null;
  }

  //保存用戶數據
  void saveUserInfo(UserInfo data) async {
    //替換userInfo的數據
    _userInfo = data;
    //保存userInfo
    SharedPreferences pref= await SharedPreferences.getInstance();
    //將data轉換成json
    var str = json.encode(data);
     pref.setString(DataConst.KEY_UserInfo, str);
  }

  //移除用戶數據
  void removeUserInfo() async{
    //清空userInfo
    _userInfo = null;
    //移除已存數據
    SharedPreferences pref= await SharedPreferences.getInstance();
    pref.remove(DataConst.KEY_UserInfo);
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM