web-dev-qa-db-fra.com

Comment enregistrer sur le stockage local Web dans Flutter Web

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.

13
ikben

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');
  }
}
10
Dariusz Bacinski

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;

5
Spatz

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);
}
3
slamarseillebg

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

3
yshahak