【问题标题】:Flutter For Web is there a way to store data?Flutter For Web 有没有办法存储数据?
【发布时间】:2019-12-08 18:07:55
【问题描述】:

我正在使用 Flutter for web 构建一个 web 应用程序,我确信在 Flutter 的移动版本中有一种将数据存储在设备中的方法,但我不知道这是否在 Flutter for网络还没有。

【问题讨论】:

标签: web flutter dart flutter-web


【解决方案1】:

您可以使用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']);
}

【讨论】:

    【解决方案2】:

    Moor 是建立在sqlite 之上并基于indexedDb 的反应式持久性数据存储库。该库与大多数网络浏览器兼容。
    您可以使用该包并查看来自official link 的文档和示例。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 存储令牌等数据以维护用户登录我的应用程序是否安全?
        • 我认为客户端的任何东西都不安全。我认为保存令牌应该没问题。
        • 万一有人来了;这里的答案似乎stackoverflow.com/questions/56417667/… 这不再有效
        猜你喜欢
        • 2014-02-27
        • 1970-01-01
        • 2019-12-06
        • 2019-11-20
        • 1970-01-01
        • 1970-01-01
        • 2017-03-21
        • 2020-11-24
        • 1970-01-01
        相关资源
        最近更新 更多