如何实现 Google Play 应用内更新并通过 Xamarin 使用 Play Core 库

问题描述 投票:0回答:3

Google 提供了一种实现应用内更新的新方法:https://developer.android.com/guide/app-bundle/in-app-updates,可用于强制用户使用最新版本更新其应用程序可用版本。

为了能够使用此新功能,需要使用 Play Core Library 1.5.0 或更高版本:https://developer.android.com/guide/app-bundle/playcore

可以从 Xamarin 使用它并使用此新功能实现应用内更新吗?

问候

android xamarin.android google-play
3个回答
2
投票

更新:检查https://github.com/PatGet/XamarinPlayCoreUpdater

我能够为 Play 核心库提供 Xamarin 绑定,可以在我的驱动器上找到它

很快就会将其打包到 NuGet,一旦完成就会在这里更新


1
投票

这个答案是针对 Xamarin Android 的新开发人员的,因为我正在寻找解决方案,但找不到任何地方,因此根据 Android 论坛上建议的 java 实现为 C# 实现了它。这是我的示例 - 从 nuget 管理器安装 Google play 核心库 Xamarin.GooglePlayServices.Base。并将命名空间添加到 MainActivity.cs 或任何要检查更新的活动中:

   using Com.Google.Android.Play.Core.Appupdate;
   using Com.Google.Android.Play.Core.Tasks;
   using Com.Google.Android.Play.Core.Install.Model;

在您的活动中为 IAppUpdateManager 创建一个变量,并在该活动上实现 IOnSuccessListener,该活动具有 OnSuccess 方法,如下所示:

public void OnSuccess(Java.Lang.Object p0)
        {
            if ((p0 as AppUpdateInfo).UpdateAvailability() == UpdateAvailability.UpdateAvailable && (p0 as AppUpdateInfo).IsUpdateTypeAllowed(AppUpdateType.Immediate))
            {
                appUpdateManager.StartUpdateFlowForResult(p0 as AppUpdateInfo, this, AppUpdateOptions.NewBuilder(AppUpdateType.Immediate).Build(), TaskId);
            }
        }

如果您有要求,您可以将 AppUpdateType 更改为 FLEXIBLE 而不是 Immediate。并按照您希望在活动中的任何位置检查更新。

appUpdateManager = AppUpdateManagerFactory.Create(this);
         // Returns an intent object that you use to check for an update.
        var appUpdateInfoTask = appUpdateManager.AppUpdateInfo;
        if (appUpdateInfoTask != null)
        {
            //Register the listener and you can check for the response of this listener at OnSuccess method implemented.
            appUpdateInfoTask.AddOnSuccessListener(this);
        }

库中有更多可用选项,您可以在此处查看并根据需要实施。请记住它是 Java 或 Kotlin,但上面的示例将有助于 C# 实现:https://developer.android.com/guide/playcore/in-app-updates/kotlin-java#java


0
投票

对于 MAUI,现在一切都在一行中实现:

  • 将 NuGet 包添加到您的项目中:
<PackageReference Include="Oscore.Maui.Android.InAppUpdates" Version="0.9.1" />
  • 将以下内容添加到您的
    MauiProgram.cs
    CreateMauiApp
    方法中:
builder
    .UseMauiApp<App>()
    .UseAndroidInAppUpdates()
    .ConfigureFonts(fonts =>
    {
        fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
        fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
    });

来源:https://github.com/oscoreio/Maui.Android.InAppUpdates

© www.soinside.com 2019 - 2024. All rights reserved.