如何检查版本号并在App(iTunes)Store(iOS)中打开应用程序?

时间:2019-06-10 05:44:44

标签: plugins xamarin.forms xamarin.ios

我需要检查已安装应用程序的当前版本。如果不是同一应用,则应导航到应用商店中的应用页面。

我正在使用最新版本插件。它可以与Android一起正常工作,但不能与iOS

一起工作
Setings.appVersion = await CrossLatestVersion.Current.GetLatestVersionNumber();
if (Setings.appVersion == "1.0.1")
{
     MainPage = new NavigationPage(new Login());
}
else
{
     //lblBuildNumber.Text = DependencyService.Get<IAppVersionAndBuild>().GetBuildNumber();
     MainPage = new NavigationPage(new UpdateAppPopup());
}


async void  Handle_Clicked(object sender, System.EventArgs e)
{
      await CrossLatestVersion.Current.OpenAppInStore("com.KIH.Consultant");
}

使用此代码,它应该导航到应用商店或Playstore中的应用页面 可以在playstore中正常运行,但不能在appstore(ios)中工作

2 个答案:

答案 0 :(得分:1)

1)在主项目中创建一个界面

public interface IAppService
{
  string GetVersion();
}

2)然后在您的droid项目中实现它

public class AppService : IAppService
{

    public string GetVersion() {
    var context = Android.App.Application.Context;
    var info = context.PackageManager.GetPackageInfo(context.PackageName, 
    Android.Content.PM.PackageInfoFlags.MatchAll);
    return info.VersionName;
}

3)然后在ios项目中实现它

public class AppService : IAppService
{
    public string GetVersion()
    {
        return NSBundle.MainBundle.InfoDictionary["CFBundleShortVersionString"].ToString();
    }
}

4)现在您可以像这样使用它

string v = Get<IAppService>().GetVersion();

答案 1 :(得分:1)

使用Xamarin.Essentials获取应用程序的当前版本字符串和版本代码。

// Application Version (1.0.0)
var version = AppInfo.VersionString;

// Application Build Number (1)
var build = AppInfo.BuildString;