Flutter For Web 有存储数据的方法吗?

Flutter For Web is there a way to store data?

我正在构建一个带有 flutter for web 的 web 应用程序,我确信在 flutter 的移动版本中有一种方法可以在设备中存储数据,但我不知道这是否在flutter for web 呢。

显然你可以使用 localStoragehttps://github.com/flutter/flutter/issues/35116

您可以使用 SharedPreferences 插件来存储和检索持久性简单数据。他们从版本 0.5.4+7

开始支持网络

您可以使用 dart:html 包中的本地存储,但如果您的应用程序也在移动设备上运行,则最好使用 universal_html 包,它提供 dart:html 的所有功能。

如果你的应用程序支持移动设备,在我写这个答案的时候,dart 编译器会用这个对你大喊大叫,

Avoid using web libraries, dart:html, dart:js and dart:js_util in Flutter packages that are not web plugins. These libraries are not supported outside a web context; functionality that depends on them will fail at runtime in Flutter mobile, and their use is generally discouraged in Flutter web.

带有 universal_html 的简单示例:

import 'package:universal_html/html.dart';

void main() {
  String username = window.localStorage['username'];
  if (username == null) {
    window.localStorage['username'] = "dartyDev";
  } else {
    window.localStorage.remove('username');
  }
  // Get the latest updated value
  print(window.localStorage['username']);
}

Moor是一个反应式持久化数据存储库,它建立在sqlite之上,基于indexedDb。这个库与大多数网络浏览器兼容。
您可以使用该包并查看 official link.

中的文档和示例