当选项卡关闭并重新打开时,Flutter Web shared_preferences不可用

时间:2019-12-27 16:32:15

标签: flutter dart flutter-web

Flutter网站现在支持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");
}

1 个答案:

答案 0 :(得分:0)

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实例   允许启用远程调试端口。