【问题标题】:Flutter web shared_preferences not available when tab is closed and reopened关闭并重新打开选项卡时,Flutter web shared_preferences 不可用
【发布时间】:2020-04-17 14:04:13
【问题描述】:

Flutter web 现在支持 shared_preferences。我已将 shared_preferences 添加到我的 Flutter Web 应用程序中。 我的问题是当我设置首选项时,比如说当我启动应用程序时,它在应用程序的任何地方都可以正常工作,但是当我关闭浏览器并再次启动应用程序并尝试检索它时,它什么也不返回。如何在关闭和启动应用程序后让它工作。

_showPref()async{
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setInt("myKey", 98);
}

@override
  void initState() {
    // TODO: implement initState
    super.initState();
    _showPref();
  }    

// then retrieve with the code
getPrefs(){
   SharedPreferences prefs = await SharedPreferences.getInstance();   
   int count = (prefs.getInt("myKey")??0);
   print(" 2. new prefs: $count");
}

【问题讨论】:

  • shared_preferences 在 Flutter Web 上对你有用吗?
  • 我也发生了同样的事情。 shared_preferences 在会话中有效,但是当您关闭会话并重新打开它时,shared_preference 值就消失了。 Share_preferences 在本地或 chrome 中的服务器上不起作用

标签: flutter dart flutter-web


【解决方案1】:

shared_preferences 插件在生产模式下按预期工作,只需运行flutter build web 并提供来自build/web 目录的文件。

当应用程序在web-server 设备上启动(即使用flutter run --device web-server)时,首选项可能会丢失,因为服务器在任意端口启动。要修复它,请使用选项 --web-port

flutter run -d web-server --web-port 3344

当应用在设备chrome(命令flutter run -d chrome)上启动时,无法保存会话之间的首选项。 每次chrome 使用随机的user-data-dir 参数启动时,首选项仅在页面刷新后仍然存在,但在重新启动后会清除。

在源代码code 中解释为:

使用 tmp 目录可确保启动新的 chrome 实例 允许启用远程调试端口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    • 2020-04-11
    • 2022-01-15
    • 1970-01-01
    • 2014-11-23
    相关资源
    最近更新 更多