Shared_preferences(https://pub.dev/packages/shared_preferences)似乎不适用于Flutter for Web。
按下按钮时会调用以下功能。
getEmail() async {
print("reached 1st line");
SharedPreferences prefs = await SharedPreferences.getInstance();
print("reached 2nd line");
String _confirmedEmail = prefs.getString('_confirmedEmail') ?? "";
)
它显示“到达第一行”,但不显示“到达第二行”,这意味着程序不会经过await语句。有趣的是,我也没有任何错误。似乎只是忽略了await语句之后的其余功能。
在Flutter for Web中存储共享首选项的最佳选择是什么?
答案 0 :(得分:7)
好消息,默认是{0.5.6版shared_prefs,flutter默认支持网络
现在包括shared_preferences for web
您的代码应该可以正常工作,而无需更改,只需更新 pubspec.yaml
中的依赖性dependencies:
shared_preferences: ^0.5.6
答案 1 :(得分:3)
shared_preferences不适用于Flutter Web,这就是为什么实例值永远不会返回的原因。为此,您可以改用任何键值存储,例如sembast
答案 2 :(得分:0)
在pub.dev中搜索库时,您可能会检查标签。
对于Web来说,最好的实现方式是为Web实现缓存,而dcache为使用flutter_web
实现缓存。
import 'package:dcache/dcache.dart';
void main() {
Cache c = new SimpleCache(storage: new SimpleStorage(size: 20));
c.set("key", 42);
print(c.get("key")); // 42
print(c.containsKey("unknown_key")); // false
print(c.get("unknown_key")); // nil
}
如您所见,它与Flutter的shared_preferences
非常相似。
希望这会有所帮助。
答案 3 :(得分:0)
由于这个原因,我认为它现在受到支持。这取决于shared_preferences_web image from pub dev