我试图将设备令牌保存到SharedPreferences中,以便可以在其他窗口小部件中使用它,但是在其他窗口小部件中,令牌值始终为null。不知道我在这里做错了什么。
@override
void initState() {
// TODO: implement initState
super.initState();
_messaging.getToken().then((token) {
_getAndSaveToken;
});
}
_getAndSaveToken() {
_messaging.getToken().then((token) async{
final prefs = await SharedPreferences.getInstance();
await prefs.setString('token', token);
print(token);
});
}
答案 0 :(得分:2)
要先使用共享首选项,您必须创建一个这样的实例
SharedPreferences prefs = await SharedPreferences.getInstance();
然后保存一个值
prefs.setString("token", token);
要在另一个小部件中访问此文件,您应该访问相同的实例并使用get
String token = prefs.getString("token");
在您要设置令牌的情况下,应该是这样。
_getAndSaveToken() async {
_messaging.getToken().then((token) {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString("token", token);
print(token);
});
}
您可以按以下方式访问此令牌
_getSavedToken() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String token = prefs.getString("token"); // do something with this
}