问题标签 [flutter-sharedpreference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
128 浏览

flutter - Flutter:Windows 上的 shared_preferences - 无法创建链接

我正在尝试安装“shared_preferences”:

颤振酒吧添加shared_preferences

但我得到了错误:

哎呀;颤振意外退出:“FileSystemException:无法创建链接,路径='z:\gazer_client\windows\flutter\ephemeral.plugin_symlinks\path_provider_windows'(操作系统错误:函数不正确。,errno = 1)”。崩溃报告已写入 z:\gazer_client\flutter_08.log。

我已经设置了开发者模式: 开发者设置

  • 视窗 10
  • UAC 开启
  • NTFS(当然)

怎么了?谢谢!

0 投票
1 回答
17 浏览

flutter - 颤振)我想制作一个用户可以更改字体大小的页面(具有本地保存功能)

这是我的代码。

我想在此代码中使用 shared_preferences 以便用户可以选择自己的字体大小,并且该字体大小适用于整个应用程序。

但是,我被困在使用 shared_preferences 保存它的部分。我尝试参考下面链接中的文章,但没有保存。仍然返回空值。

Flutter,如何将字体大小选项保存到 sharedpreference 中?

如何使用 shared_preferences 保存字体大小?

0 投票
0 回答
31 浏览

flutter - 可以在颤动中留下(使用)空检查错误吗?

如上,使用 shared 在本地存储 bool 列表。

但是,如果您按上述方式创建代码,则在您首次连接时,列表将为空并带有 []。(因为您还没有在 prefs.getStringList("favorite4") 中保存任何内容)

我在这里收到错误,因为我必须使用 FavoriteButtons[1]。我找到了解决这个问题的方法。那只是使用空检查错误使您的代码仅在第一次运行中途停止。经测试,使用该应用程序没有问题。但是不知道以后在部署或者实际使用中会不会出现问题。

0 投票
0 回答
69 浏览

flutter - SharedPreference 在应用程序 Killed/Close Flutter 上丢失数据

我正在将转换为字符串的模态对象保存到 SharedPreference 并终止应用程序。但是当我回到应用程序时 SharedPreference 已经丢失了保存的数据。我是新来的。请帮忙。我想保存我的数据并杀死应用程序并在回来时再次检索。

这是我的代码

从 SharedPreferences 杀死应用程序后,我没有得到保存的数据。

0 投票
0 回答
101 浏览

dart - 刷新页面后flutter web保存页面堆栈

我正在尝试在按下浏览器刷新按钮后恢复页面堆栈。使用onGenerateRouteonMaterialApp我可以恢复单个页面,即使使用SharedPrefencesapi 和 Firestore 数据的参数,但是当我按下浏览器后退按钮时,它会转到主页。如何保存颤动页面堆栈或至少只保存堆栈中当前页面的分支?这是一个onGenerateRoute实现示例:

ProductEditScreen页面之前有ProductListScreen页面。我需要将它们放入堆栈。

0 投票
1 回答
89 浏览

flutter - 如果使用的 memoizer 未通知侦听器,则未来的构建器将永远运行

我正在尝试根据使用以下代码存储在共享首选项中的值来切换抽屉选项卡。

当不使用 memoizer 但未来的构建器永远运行时,代码工作正常。

如果我使用 memorizer,未来的构建器仍然至少运行两次(不是永远),但是 get 和 set 函数不起作用,新值不会更新,也不会通知小部件。

我需要一些方法来永远停止运行未来的构建器,并通过触发其中存在的 get 和 set 函数来相应地通知用户

通知程序类

抽屉

脚手架

更新

我进一步分析,问题在于provider.getValue(),如果我在返回值之前使用notifyListeners() 未来构建器将永远运行

我删除了它,未来的构建器不会永远运行,但它不会更新其他小部件。

情景是

小部件 1

  1. 包含一个抽屉
  2. 有一个按钮来切换应用程序
  3. 使用共享首选项(setValue() 函数)设置点击值,并通知侦听器
  4. 在小部件 1 中,通知程序运行良好,并且在点击调用 setValue() 时更改了抽屉按钮选项。
  5. 小部件 1 中的所有内容都已解决,因为它的调用 setValue() 因此触发了 notifyListeners() 并重新渲染了小部件 1

小部件 2

  1. 仅从共享偏好中获取价值(getValue() 函数)。getValue 函数不能使用 notifyListeners(),如果使用 futurebuilder 将永远运行

  2. 小部件 2 没有设置任何值,因此它不使用 setValue() 因此它没有得到通知

  3. 当在小部件 1 中触发点击 setValue() 时,我如何通知小部件 2

即 widget1 使用 setValue() 函数设置应用程序

widget2 从 getValue() 函数中获取值并得到通知

更新 2

小部件 2

_buildMenuItem

0 投票
1 回答
31 浏览

flutter - 如何在颤动中检查 SharedPreferences 文件是否存在

我的颤振应用程序需要检查是否有SharedPreferences文件以及在SharedPreferences我的应用程序开始时是否有值。

这是我的代码:

主要.dart

ShardPreferance 从 sharedPreferanc 中检索用户数据

最后它会产生以下错误

产生的错误

0 投票
1 回答
51 浏览

flutter - 后期初始化错误在颤动中共享偏好?

即使在我初始化之后也会出现错误:

后期初始化错误 displayName

这是我设置值的代码:

我在这里访问数据:

我不知道是什么问题?但在其他屏幕上它正在工作。

0 投票
2 回答
160 浏览

flutter - 如何访问 Flutter 的共享偏好文件?

我对 Flutter 很陌生,目前,我正在编写一个应用程序,该应用程序需要将键值对存储到磁盘并在每次应用程序打开时读取它。

我基于this document,使用共享首选项包,它工作正常。但是,调试并不容易,我习惯了web开发,和类似的想法,localStorage可以使用几乎任何浏览器(例如Chrome)在运行时轻松访问和编辑,这个特性使得开发和调试变得容易。

所以我的问题是,在 Flutter 开发中是否存在一些等价物,我可以轻松地编辑共享偏好存储?最需要的功能之一是清除共享存储中的所有内容,这样我就可以重复运行一个干净的程序并调试.

现在我只能通过编写类似的功能代码preferences.clear()并运行一次来​​做到这一点,这很痛苦。

我正在使用 VSCode + Android AVD 进行 Flutter 开发。

谢谢!

0 投票
1 回答
39 浏览

flutter - 未从 SharedPreferences 获取更新值

我的颤振应用程序正在使用电话包在前台和后台收听短信。在注册接收消息时,我使用了两种方法(一种用于前台,一种用于后台,根据电话包的要求,如下所示:

但是在这两种方法内部都调用了一个通用方法,该方法将最近收到的 SMS 保存到共享首选项中,如下所示:

在 App UI 中,我像这样获取 lastsmsbody:

我在 UI 中显示这个值。当应用程序在前台运行时,这工作正常。屏幕上的数据会随着消息的出现而更新。

问题是当应用程序在后台推送时。从日志中,我看到它仍然收到消息,并且仍然将其保存在首选项中。但是当我将应用程序带回前台时,它无法获取应用程序在 bg 中时保存的最新消息。sp.getString("lastsmsbody") 获取应用程序在前台时保存的旧消息。

我认为当应用程序位于 fg 和 bg 时,偏好可能会有所不同。但是,如果我终止应用程序并重新启动,sp.getString("lastsmsbody") 会返回应用程序在 bg 中时保存的最新消息正确。

有人能告诉我这里发生了什么吗?