Я пытаюсь настроить AppCenter.Distribute для обновлений внутри приложения в моем приложении Xamarin для Android.Вот очень простой установочный код, который у меня есть в методе OnCreate моей основной программы запуска (ПОСЛЕ вызова base.OnCreate):
AppCenter.Start (Resources.GetString (Resource.String.appcenter_app_secret), typeof (Analytics), typeof (Crashes), typeof (Distribute));
Мне удалось получить обновления в приложении, предположительно для инициализации.Когда я впервые устанавливаю и открываю приложение, в течение одной секунды отображается окно браузера с надписью «Обновления в приложении включены! Возвращаясь к приложению через 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, запущено или завершено?Потому что в нашем случае основной модуль запуска - это просто заставка, которая закрывается через пару секунд.
- Должен ли SDK App Center запрашивать обновление каждые несколько секунд?Или он проверяет только при открытии и закрытии деятельности?