gpt4 book ai didi

ios - Flutter:如何在安装/卸载期间删除 FlutterSecureStorage 项目

转载 作者:行者123 更新时间:2023-11-29 11:26:52 25 4
gpt4 key购买 nike

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com