【问题标题】:Xamarin forms application data persistence after uninstallXamarin 卸载后形成应用程序数据持久化
【发布时间】:2019-12-25 03:40:04
【问题描述】:

我正在寻找一种方法来存储应用程序数据,即使它已为 iOS 和 Android 卸载。

我目前正在使用来自Xamarin.FormsApplication.Current.Properties。但卸载应用程序后数据将被删除。

那么有什么方法可以存储我的数据,以便在卸载后保留在设备上?

【问题讨论】:

  • 您确实需要将数据存储在服务器上才能有效地执行此操作。 iOS 确实允许您为 iCloud 备份标记文件,这使得数据在重新安装时可用(我认为)。
  • 不能没有远程服务器...您可以询问用户是否想将其设置备份到谷歌驱动器或 iCloud 上。
  • 对于 iOS,您可以将该值存储在 Keychain 中
  • 一种选择是手动创建值文件并将其保存在公开可用的位置,例如 SD 卡。

标签: xamarin.forms data-persistence


【解决方案1】:

我也有同样的问题。就我而言,我想存储identifierForVendor,它是安装 ios 应用程序时生成的 id。这个Id 的问题是卸载应用程序并重新安装时它会发生变化。因此,我寻找即使在卸载应用程序后也可用于存储信息的方法。我找到了Xamarin.Essentials: Secure Storage,但经过测试发现,在卸载应用程序后,secure storage 中存储的任何值都将被删除(对于旧的 ios 系统,它可能不会被删除。但是,不能保证新版本的ios)。

我找到了一个可能不实用的解决方案。创建一个文件并将信息存储在上面。此解决方案可能存在一些缺点,例如:

  1. 请注意此文件可能会被其他应用程序读取,因此如果您打算存储敏感信息,可以对文件进行加密。
  2. 如果将文件存放在应用存储路径中,卸载应用后文件可能会被删除,因此请选择下载文件夹等卸载应用后不会删除的路径。但是,您可能会遇到另一个问题,即用户可能不小心删除了此文件。

【讨论】:

    【解决方案2】:

    试试这个。

    App.xaml.cs

    protected async override void OnStart()
    {
        if (VersionTracking.IsFirstLaunchEver)
        {
            SecureStorage.Remove("token");
        }
        
        // proceed with OnStart() logic
    }
    

    【讨论】:

      猜你喜欢
      • 2017-08-28
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      • 1970-01-01
      • 2014-03-27
      相关资源
      最近更新 更多