App Center 应用内更新未显示在 Xamarin Android 应用中
App Center in-app updates not showing up in Xamarin Android app
我正在尝试为我的 Xamarin Android 应用程序中的应用程序内更新配置 AppCenter.Distribute。这是非常基本的设置代码,我在主启动器 activity 的 OnCreate 方法中有(在 base.OnCreate 调用之后):
AppCenter.Start (Resources.GetString (Resource.String.appcenter_app_secret), typeof (Analytics), typeof (Crashes), typeof (Distribute));
我能够获取应用程序内更新以进行初始化。当我第一次安装并打开该应用程序时,它会显示浏览器 window 一秒钟并显示 "In-app updates enabled! Returning to app in 1...",然后它会重定向回我的应用程序。不幸的是,当我修改版本名称和代码并分发新版本时,我没有在应用程序中看到提示我更新到新版本的对话框。
我什至尝试处理 Distribute.ReleaseAvailable 操作并显示自定义对话框,但也没有调用该操作:
Distribute.ReleaseAvailable = OnReleaseAvailable;// Called before AppCenter.Start
private bool OnReleaseAvailable(ReleaseDetails releaseDetails)
{
// Show custom dialog.
Droid.ApplicationContext.Activity.CustomDialogBuilder().Show(new NotificationArgs
{
Title = "New update available!",
Message = "A new version of RPR Mobile, {0} ({1}) is available. Release notes: {2}"
.WithFormat(releaseDetails.ShortVersion, releaseDetails.Version, releaseDetails.ReleaseNotes),
PositiveButtonText = "Update",
PositiveAction = () =>
{
// Notify SDK that user selected to update...
Distribute.NotifyUpdateAction(UpdateAction.Update);
},
HideNegativeButton = releaseDetails.MandatoryUpdate,
NegativeButtonText = "Postpone Update",
NegativeAction = () =>
{
// Notify SDK that user selected to postpone (for 1 day)...
// Note that this method call is ignored by the SDK if the update is mandatory.
Distribute.NotifyUpdateAction(UpdateAction.Postpone);
}
});
// Return true if you are using your own dialog, false otherwise.
return true;
}
我想知道我错过了什么。有些问题可能相关也可能不相关...
- AppCenter.Start 代码在 base.OnCreate 调用之前或之后执行是否重要?
- 调用 AppCenter.Start 的 activity 是 运行 还是完成有关系吗?因为在我们的例子中,主启动器只是一个启动画面,几秒钟后就会关闭。
- App Center SDK 是否应该每隔几秒轮询一次更新?还是只在打开和关闭活动时检查?
事实证明,您必须关闭并重新启动您的应用程序才能检查新的更新。文档在这方面可能会更清楚...
我正在尝试为我的 Xamarin Android 应用程序中的应用程序内更新配置 AppCenter.Distribute。这是非常基本的设置代码,我在主启动器 activity 的 OnCreate 方法中有(在 base.OnCreate 调用之后):
AppCenter.Start (Resources.GetString (Resource.String.appcenter_app_secret), typeof (Analytics), typeof (Crashes), typeof (Distribute));
我能够获取应用程序内更新以进行初始化。当我第一次安装并打开该应用程序时,它会显示浏览器 window 一秒钟并显示 "In-app updates enabled! Returning to app in 1...",然后它会重定向回我的应用程序。不幸的是,当我修改版本名称和代码并分发新版本时,我没有在应用程序中看到提示我更新到新版本的对话框。
我什至尝试处理 Distribute.ReleaseAvailable 操作并显示自定义对话框,但也没有调用该操作:
Distribute.ReleaseAvailable = OnReleaseAvailable;// Called before AppCenter.Start
private bool OnReleaseAvailable(ReleaseDetails releaseDetails)
{
// Show custom dialog.
Droid.ApplicationContext.Activity.CustomDialogBuilder().Show(new NotificationArgs
{
Title = "New update available!",
Message = "A new version of RPR Mobile, {0} ({1}) is available. Release notes: {2}"
.WithFormat(releaseDetails.ShortVersion, releaseDetails.Version, releaseDetails.ReleaseNotes),
PositiveButtonText = "Update",
PositiveAction = () =>
{
// Notify SDK that user selected to update...
Distribute.NotifyUpdateAction(UpdateAction.Update);
},
HideNegativeButton = releaseDetails.MandatoryUpdate,
NegativeButtonText = "Postpone Update",
NegativeAction = () =>
{
// Notify SDK that user selected to postpone (for 1 day)...
// Note that this method call is ignored by the SDK if the update is mandatory.
Distribute.NotifyUpdateAction(UpdateAction.Postpone);
}
});
// Return true if you are using your own dialog, false otherwise.
return true;
}
我想知道我错过了什么。有些问题可能相关也可能不相关...
- AppCenter.Start 代码在 base.OnCreate 调用之前或之后执行是否重要?
- 调用 AppCenter.Start 的 activity 是 运行 还是完成有关系吗?因为在我们的例子中,主启动器只是一个启动画面,几秒钟后就会关闭。
- App Center SDK 是否应该每隔几秒轮询一次更新?还是只在打开和关闭活动时检查?
事实证明,您必须关闭并重新启动您的应用程序才能检查新的更新。文档在这方面可能会更清楚...