- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 FlutterSecureStorage 来存储某些项目,即用于访问服务器端资源的 API token 。但是,我遇到了一个奇怪的问题。我不得不删除数据库(因为我仍处于测试模式,目前这种情况经常发生),这也删除了所有 token 。但是当应用程序尝试连接时,它会出错。
在 Android 上,这不是什么大问题。我只是卸载并重新安装应用程序,它会下载一个新的 token 。
在 iOS 上,有一个问题。因为 FlutterSecureStorage 将任何信息存储在钥匙串(keychain)中,所以数据不会被删除即使应用程序被卸载。所以在我重新安装它之后,它仍然从存储中获取 token ,而且我无法刷新 token 。
我的问题是:在 Flutter 中安装或卸载期间,是否有某种方法可以运行代码来删除所有存储项?
最佳答案
在 iOS 上,您可以使用 NSUserDefaults
,它会在应用程序卸载时被删除。这样您就可以检查应用程序是否在卸载后首次启动。使用 shared_preferences
Flutter 插件来使用 NSUserDefaults
。
此方法之前已在 StackOverflow 上针对其他平台进行过讨论,请参阅 Delete keychain items when an app is uninstalled其他语言的示例。
对于 Flutter,此示例将变为:
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:shared_preferences/shared_preferences.dart';
// ...
final prefs = await SharedPreferences.getInstance();
if (prefs.getBool('first_run') ?? true) {
FlutterSecureStorage storage = FlutterSecureStorage();
await storage.deleteAll();
prefs.setBool('first_run', false);
}
关于ios - Flutter:如何在安装/卸载期间删除 FlutterSecureStorage 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57933021/
我正在使用 FlutterSecureStorage 来存储某些项目,即用于访问服务器端资源的 API token 。但是,我遇到了一个奇怪的问题。我不得不删除数据库(因为我仍处于测试模式,目前这种情
我是一名优秀的程序员,十分优秀!