我有一个iOS
应用程序已经在商店,现在计划用新版本的release
取代它。
我想在Flutter代码中访问本机应用程序的UserDefaults
数据。
使用在Flutter文档中建议的方式,我得到null value
。我试过的是:
在我的pubspec.yaml
文件中:
dependencies:
shared_preferences: ^0.5.12+4
我的home.dart
类文件,我正在导入头:
import 'package:shared_preferences/shared_preferences.dart';
这就是我如何试图访问存储在iOS
中的数据应用程序从native
应用程序,我使用相同的bundle ID(包ID)在扑动项目中覆盖应用程序,它成功覆盖。
@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;
}
它总是返回null。当从iOS原生应用获取时,'user'键有数据。
我们可以使用现有插件native_shared_preferences。它允许我们在Android上访问本地SharedPreferences
和UserDefaults
在iOS.通过键"SomeKey":
final someKey = "SomeKey";
var prefs = await NativeSharedPreferences.getInstance();
if (prefs.containsKey(someKey)) {
print("Value for SomeKey: ${prefs.get(someKey)}");
}
在这种情况下,我建议您使用平台通道方法
平台渠道
iOS似乎不允许flutter框架访问NSUserDefaults,当它没有从一开始就创建它的时候,…
我希望它对你有用。