【发布时间】:2019-08-07 12:20:34
【问题描述】:
我有一个适用于 iOS 和 Android 的 Xamarin.Forms 应用程序,它即将收到更大的更改。为了迁移存储在应用程序中的当前数据,我想在应用程序更新后立即运行一些“迁移代码” - 这可能吗?
Xamarin.Forms 中是否有任何事件或类似事件允许我在应用更新后仅运行一次迁移代码?
【问题讨论】:
标签: xamarin xamarin.forms
我有一个适用于 iOS 和 Android 的 Xamarin.Forms 应用程序,它即将收到更大的更改。为了迁移存储在应用程序中的当前数据,我想在应用程序更新后立即运行一些“迁移代码” - 这可能吗?
Xamarin.Forms 中是否有任何事件或类似事件允许我在应用更新后仅运行一次迁移代码?
【问题讨论】:
标签: xamarin xamarin.forms
执行此操作的最常见方法是在更新完成后设置一个标志(在数据库或文件系统中,或使用属性或设置插件),或者根据应用的版本号来设置更新逻辑。
【讨论】:
您可以利用Xamarin.Essentials' Version Tracking API:
以下是您将获得的一些信息:
// First time ever launched application
var firstLaunch = VersionTracking.IsFirstLaunchEver;
// First time launching current version
var firstLaunchCurrent = VersionTracking.IsFirstLaunchForCurrentVersion;
// First time launching current build
var firstLaunchBuild = VersionTracking.IsFirstLaunchForCurrentBuild;
// Current app version (2.0.0)
var currentVersion = VersionTracking.CurrentVersion;
如果您更新的应用程序的 string 版本已增加,您可以将 firstLaunchCurrent bool 用于您的方案,否则请使用 firstLaunchBuild bool,因为更新的应用程序需要增加内部版本号(这是一个 int 类型)。
【讨论】: