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");
}
答案 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实例 允许启用远程调试端口。