web-dev-qa-db-ja.com

Flutter WebでWebローカルストレージに保存する方法

flutter for webで構築されたWebサイトがあり、現在、WebローカルストレージまたはCookieに保存しようとしていますが、それをアーカイブするプラグインまたは方法を見つけることができません。

13
ikben

window.localStorageDart: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

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;

5
Spatz

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

flutter 1.9にアップグレードすると、'Dart:html'Flutterに付属するDart SDKの一部ではないため、コンパイルされなくなります。 Android、IOS and WEB: crypted_preferences をサポートしているため、現時点ではこのパッケージを使用できます。

3
yshahak