1. shared_preferences ローカル ストレージ プラグインの紹介
- shared_preferences は、Flutter が提供するローカル データ アクセス プラグインです。
- さまざまなプラットフォームで、SharedPreferences 開発に基づく Android プラットフォーム、NSUserDefaults 開発に基づく iOS プラットフォームなど、さまざまなメカニズムに基づいて開発します。
- ローカル ファイルへのアクセスは時間のかかる操作であるため、shared_preferences ストレージへのアクセスは非同期操作です。
- シンプルなデータ用にプラットフォーム固有の永続ストレージをカプセル化します (iOS および macOS では NSUserDefaults、Android では SharedPreferences など)。データは非同期的にディスクに永続化される可能性があり、書き込みが戻った後にディスクに永続化されるという保証はないため、このプラグインを使用して重要なデータを保存することはできません。
達成:
プラグインの依存関係を追加します。
dependencies:
shared_preferences: 2.0.15 #本地存储插件
簡単な例:
import 'package:shared_preferences/shared_preferences.dart';
/**
* 存储数据到本地
*/
enum StoreKeys {
token,
}
enum StoreName{
name,
}
enum StorePassword{
password,
}
class Store {
// static StoreKeys storeKeys;
final SharedPreferences _store;
static Future<Store> getInstance() async {
SharedPreferences preferences = await SharedPreferences.getInstance();
return Store._internal(preferences);
}
Store._internal(this._store);
/**
* 保存token
*/
getString(StoreKeys key) async {
return _store.get(key.toString());
}
setString(StoreKeys key, String value) async {
return _store.setString(key.toString(), value);
}
/**
* 保存用户名
*/
getNameString(StoreName key) async {
return _store.get(key.toString());
}
setNameString(StoreName key, String value) async {
return _store.setString(key.toString(), value);
}
/**
* 保存密码
*/
getpasswordString(StorePassword key) async {
return _store.get(key.toString());
}
setPasswordString(StorePassword key, String value) async {
return _store.setString(key.toString(), value);
}
remove(StoreKeys key) async {
return _store.remove(key.toString());
}
}
呼び出し方法:
String name = 'admin'; //测试数据
String password = '123456'; //测试数据
Store store = await Store.getInstance(); //初始化
await store.setNameString(StoreName.name, name); //调用写入方法
String testName = await store.getNameString(StoreName.name);//获取对应数据
print("获取的用户名 $testName");
await store.setPasswordString(StorePassword.password, password);//调用写入方法
String testPassword =
await store.getpasswordString(StorePassword.password);//获取对应数据
print("获取的密码 $testPassword");
基本的な使い方
サポートされているデータ型
int
、double
、bool
、String
。List<String>
_
データ入力
var user = await SharedPreferences.getInstance(); //
ユーザーの初期化 .setString("name", "Zhang San");
user .setInt("age", 22);
user .setBool("sex", true);
user .setDouble("身長", 177.7);
user .setStringList("住所", <文字列>["石家荘", "長安区"]);
データを読む
var user = await SharedPreferences.getInstance(); //初始化
文字列? 名前 = ユーザー .getString("名前");
整数?年齢 = ユーザー .getInt("年齢");
ブール?性別 = ユーザー .getBool("性別");
ダブル?高さ = ユーザー .getDouble("高さ");
リスト<文字列>? アドレス = ユーザー .getStringList("アドレス");
データを削除する
データを削除する
var user= await SharedPreferences.getInstance(); //初始化
user.remove("name");
すべてのデータを削除する
var user = await SharedPreferences.getInstance(); //初始化
user.clear();
すべてのキーを取得
var user = await SharedPreferences.getInstance();
var キー = user.getKeys();
キーは存在しますか?
var user = await SharedPreferences.getInstance();
var b = user.containsKey("名前");