J'ai un site Web construit avec flutter for web et actuellement, j'essaie d'enregistrer sur le stockage local Web ou un cookie, mais je n'arrive pas à trouver de plugin ou de moyen d'archiver cela.
Vous pouvez utiliser window.localStorage
de 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');
}
}
Avec flutter 1.10
nous pouvons utiliser niversal_html package:
import 'package:universal_html/prefer_universal/html.Dart';
// ...
// read preference
var myPref = window.localStorage['mypref'];
// ...
// write preference
window.localStorage['mypref'] = myPref;
shared_preferences
Le package Dart prend désormais en charge le stockage local pour le Web à partir de la version .5.4.7 +
Semblable à la préférence partagée sur Android et iOS, ce qui suit est l'extrait de code pour le stockage local sur le 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);
}
Après la mise à niveau vers flutter 1.9
, 'Dart:html'
n'est plus compilé car il ne fait pas partie du SDK Dart fourni avec Flutter
. Nous pouvons utiliser ce package pour le moment car il prend en charge Android, IOS et WEB: crypted_preferences