Flutter web 现在支持 shared_preferences。我已将shared_preferences
添加到我的颤振网络应用程序中。 我的问题是当我设置首选项时,比如当我启动应用程序时,它在应用程序中的任何地方都可以正常工作,但是当我关闭浏览器并再次启动应用程序并尝试检索它时,它什么也没返回。如何在关闭并启动应用程序后使其工作。
_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 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
参数启动时,首选项仅保留页面刷新,但在重新启动后清除。
在源代码中,它解释为:
使用 tmp 目录可确保启动新的 chrome 实例 允许启用远程调试端口。