【发布时间】:2019-12-08 18:07:55
【问题描述】:
我正在使用 Flutter for web 构建一个 web 应用程序,我确信在 Flutter 的移动版本中有一种将数据存储在设备中的方法,但我不知道这是否在 Flutter for网络还没有。
【问题讨论】:
标签: web flutter dart flutter-web
我正在使用 Flutter for web 构建一个 web 应用程序,我确信在 Flutter 的移动版本中有一种将数据存储在设备中的方法,但我不知道这是否在 Flutter for网络还没有。
【问题讨论】:
标签: web flutter dart flutter-web
您可以使用dart:html 包中的本地存储,但如果您的应用程序也在移动设备上运行,最好使用提供dart:html 的所有功能的universal_html 包。
如果您的应用程序支持移动设备,那么在我写这个答案时,dart 编译器会用这个对您大喊大叫,
避免使用网络库,dart:html, dart:js 和 dart:js_util 不是 Web 插件的 Flutter 包。这些库不是 在网络环境之外支持;依赖于它们的功能 在 Flutter mobile 运行时会失败,它们的使用一般是 在 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 的文档和示例。
【讨论】:
您可以使用SharedPreferences 插件来存储和检索持久的简单数据。他们从0.5.4+7版本开始支持网络
【讨论】:
显然你可以使用localStorage:https://github.com/flutter/flutter/issues/35116
【讨论】: