我已经实现了 Google 的提供库,In-App updates
并且可以In-App updates
从Google Play 商店接收。我想在一个应用程序Immediate update
中实现两者。Flexible update
但我找不到这样做的方法。In-App 更新库基于仅是一个整数的 VersionCode 执行检查。有什么方法可以制定策略来决定是使用灵活更新还是立即更新?
问问题
764 次
1 回答
1
因此,他们已经听到了我们的声音,并且他们很快就会提出从 Android Dev Summit '19 中听到的解决方案。
问题:
appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
// Which trigger should I trigger: Flexible or Immediate
}
}
作为开发人员,我们有 2 个信号来决定我们的策略:
1. 优先信号:表示更新的重要性。优先级值由我们在发布时定义。然后通过 Play Core Api 将此优先级值公开给我们的应用程序。
例子:
appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
if(info.updatePriority() > 3 && info.isUpdateAllowed(AppUpdateType.IMMEDIATE)){
// trigger Immediate flow
}
else if(info.isUpdateAllowed(AppUpdateType.FLEXIBLE)){
// trigger Flexible flow
}
}
}
当我们发布时,我们将优先级设置为整数,假设在 0-5 之间。在我们的应用程序中,我们设置了一个阈值,比如说 3 并构建一个决策树,例如如果优先级大于 3,则触发立即更新,否则触发灵活更新。
2. Staleness Signal:表示设备知道更新的时间。
例子:
appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
if(info.clientVersionStalenessDays() > 90 && info.isUpdateAllowed(AppUpdateType.IMMEDIATE)){
// trigger Immediate flow
}
else if(info.clientVersionStalenessDays() > 30 && info.isUpdateAllowed(AppUpdateType.FLEXIBLE)){
// trigger Flexible flow
}
}
}
他们说这个功能很快就会推出。
在此处查看完整视频:https ://youtu.be/_o_q6hatcIs?t=566
于 2019-12-19T10:03:56.300 回答