flutter for webで構築されたWebサイトがあり、現在、WebローカルストレージまたはCookieに保存しようとしていますが、それをアーカイブするプラグインまたは方法を見つけることができません。
window.localStorage
のDart:html
を使用できます
import 'Dart:html';
class IdRepository {
final Storage _localStorage = window.localStorage;
Future save(String id) async {
_localStorage['selected_id'] = id;
}
Future<String> getId() async => _localStorage['selected_id'];
Future invalidate() async {
_localStorage.remove('selected_id');
}
}
flutter 1.10
使用できます niversal_html パッケージ:
import 'package:universal_html/prefer_universal/html.Dart';
// ...
// read preference
var myPref = window.localStorage['mypref'];
// ...
// write preference
window.localStorage['mypref'] = myPref;
shared_preferences
Dartパッケージは、バージョン .5.4.7 + からWebのローカルストレージをサポートするようになりました
AndroidおよびiOSの共有設定と同様に、以下はWeb上のローカルストレージのコードスニペットです。
import 'package:flutter/material.Dart';
import 'package:shared_preferences/shared_preferences.Dart'; // rememeber to import shared_preferences: ^0.5.4+8
void main() {
runApp(MaterialApp(
home: Scaffold(
body: Center(
child: RaisedButton(
onPressed: _incrementCounter,
child: Text('Increment Counter'),
),
),
),
));
}
_incrementCounter() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
int counter = (prefs.getInt('counter') ?? 0) + 1;
print('Pressed $counter times.');
await prefs.setInt('counter', counter);
}
flutter 1.9
にアップグレードすると、'Dart:html'
はFlutter
に付属するDart SDKの一部ではないため、コンパイルされなくなります。 Android、IOS and WEB: crypted_preferences をサポートしているため、現時点ではこのパッケージを使用できます。