Xamarin - Akavache 与本机键值存储(例如 NSUserDefaults)

Xamarin - Akavache vs Native Key-value Store such as NSUserDefaults

这两种方式似乎都是存储键值对的方式。我正在尝试决定将什么与我的 xamarin 表单应用程序一起使用。我希望保存的信息可以在连接的设备上使用。我看到 akavache 声明 iOS 和 UWP 备份到云端。

我正在尝试做的事情: - 保存 3 项设置,例如扫描时播放声音或自动登录。 -保存网络调用的登录信息和登录令牌。

我可以将所有这些存储在 NSUserDefaults (iOS) 中并且没问题。 Akavache 声称 Secure blob 中的项目是加密和同步的。登录信息听起来更好。

A​​kavache 似乎不支持移动 100%,因为没有地方放置移动应用程序生命周期的关闭方法。

因此,在准备工作结束后,每个平台的本机设置存储或 akavache 哪个更适合执行我需要的任务?

也许最好同时使用两者? Akavache 的登录信息和本机设置的设置?

A​​kavache 的加密故事有点误导 :-/ 它为用户提供了实施的能力,但不是加密的实际实施。

我这里有我做的样品 https://github.com/PureWeen/Akavache.Samples

在哪里可以看到加密实现

我不觉得生命周期部分有那么糟糕...我只是在 Activity Destroy 期间使用 Flush() Akavache 并且没有遇到任何问题。 "flushing" 的主要问题是您只是试图在应用程序从内存中卸载之前保留任何正在运行的内容。您实际上只是在谈论几毫秒,以确保任何飞行中的东西都能持续存在。如果您告诉要保存的内容,那么实际上是在用户关闭应用程序的同一时刻。我会称之为相当边缘条件。

就我个人而言,我只是使用 Xamarin.Auth 来存储我所有基于 "credential" 的东西(Bearer Tokens、用户名、密码),这样它就只使用本地东西进行加密。