如何访问 Flutter SharedPreferences 中 iOS UserDefaults 存储的数据
How to access iOS UserDefaults stored data in Flutter SharedPrefrences
我有一个 iOS
应用程序已经在商店中,现在计划用新版本的 Flutter 替换它 release
。
我想在 Flutter 代码中访问本机应用程序的 UserDefaults
数据。
使用 Flutter 文档中建议的方式,我得到了 null value
。我试过的是:
在我的 pubspec.yaml
文件中:
dependencies:
shared_preferences: ^0.5.12+4
我是我的 home.dart
class 文件 我正在导入 header :
import 'package:shared_preferences/shared_preferences.dart';
这就是我尝试从 native
应用程序访问存储在 iOS
应用程序中的数据的方式,我使用相同的包 ID (Package ID)在flutter工程中覆盖应用,覆盖成功
@override
void initState() {
super.initState();
getFromLocalMemory('user').then((value) =>
userInfo = value
);
}
Future<String> getFromLocalMemory(String key) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String user = prefs.getString(key);
return user;
}
它始终returns 为空。 虽然 'user' 密钥从 iOS 本机应用程序获取数据时有数据。
这样的话,建议您使用平台渠道方式
iOS 似乎不允许 flutter framework 访问 NSUserDefaults,当它没有从一开始就创建它时,..
希望对你有用。
我们可以使用现有的插件native_shared_preferences。它允许我们在 Android 上访问原生 SharedPreferences
和在 iOS 上访问 UserDefaults
。
通过键“SomeKey”读取值的示例代码:
final someKey = "SomeKey";
var prefs = await NativeSharedPreferences.getInstance();
if (prefs.containsKey(someKey)) {
print("Value for SomeKey: ${prefs.get(someKey)}");
}
我有一个 iOS
应用程序已经在商店中,现在计划用新版本的 Flutter 替换它 release
。
我想在 Flutter 代码中访问本机应用程序的 UserDefaults
数据。
使用 Flutter 文档中建议的方式,我得到了 null value
。我试过的是:
在我的 pubspec.yaml
文件中:
dependencies:
shared_preferences: ^0.5.12+4
我是我的 home.dart
class 文件 我正在导入 header :
import 'package:shared_preferences/shared_preferences.dart';
这就是我尝试从 native
应用程序访问存储在 iOS
应用程序中的数据的方式,我使用相同的包 ID (Package ID)在flutter工程中覆盖应用,覆盖成功
@override
void initState() {
super.initState();
getFromLocalMemory('user').then((value) =>
userInfo = value
);
}
Future<String> getFromLocalMemory(String key) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String user = prefs.getString(key);
return user;
}
它始终returns 为空。 虽然 'user' 密钥从 iOS 本机应用程序获取数据时有数据。
这样的话,建议您使用平台渠道方式
iOS 似乎不允许 flutter framework 访问 NSUserDefaults,当它没有从一开始就创建它时,..
希望对你有用。
我们可以使用现有的插件native_shared_preferences。它允许我们在 Android 上访问原生 SharedPreferences
和在 iOS 上访问 UserDefaults
。
通过键“SomeKey”读取值的示例代码:
final someKey = "SomeKey";
var prefs = await NativeSharedPreferences.getInstance();
if (prefs.containsKey(someKey)) {
print("Value for SomeKey: ${prefs.get(someKey)}");
}