我是.NET Maui的新手。我想通知拥有我的应用程序旧版本的用户,商店中有新版本可用。当用户单击Login按钮时,我使用以下几行代码成功地做到了这一点:
[RelayCommand]
async Task Login()
{
var isLatest = await CrossLatestVersion.Current.IsUsingLatestVersion();
if (!isLatest)
{
await Application.Current.MainPage.DisplayAlert("Update",
"New version available", "OK");
await CrossLatestVersion.Current.OpenAppInStore();
}
else
{...}
}
但我想在登录页面出现之前通知用户。我试着在方法中做
- protected override async void OnAppearing()*
但它不工作,似乎调用
- CrossLatestVersion.Current.IsUsingLatestVersion();*
死了,没有任何错误,也没有任何回应
有什么建议吗?提前感谢大家!!
2条答案
按热度按时间ffdz8vbo1#
参考上面的评论,这里是我用来从商店获得最新版本的应用程序的代码片段。这与您正在使用的nugget包中使用的技术相同。尝试进入你使用的金块的GitHub,它类似。
您可以通过在项目中使用任何静态变量来获得应用程序版本。然后你可以在两个字符串之间执行比较。我使用自然比较来检查哪个是最新版本。
e4yzc0pl2#
添加到问题的完整代码,你失败的尝试在
OnAppearing
。如果LoginPage是您的应用中显示的第一个页面,那么您肯定不希望在检查版本时阻止
OnAppearing
返回-重要的是让您的应用在启动时尽快显示某些内容。我做了一个“StartupPage”与应用程序/公司标志+“加载中...”。当任何初始化逻辑正在运行时都会显示此信息。
该技术是在后台运行初始化。完成后,转到相应的页面。在您的情况下,请转到以下两个页面之一:
StartupPage的OnAppearing: