Google Play In-App Review API: ReviewInfo 对象的有效期是多久?

Google Play In-App Review API: How long is the ReviewInfo object valid?

文档中指出 ReviewInfo 对象仅在有限的时间内有效:

Note: The ReviewInfo object is only valid for a limited amount of time. Your app should request a ReviewInfo object ahead of time (pre-cache) but only once you are certain that your app will launch the in-app review flow.

ReviewInfo 对象的有效期(大致)是多长时间?

例如,游戏是否可以在启动时获取 ReviewInfo(如果用户玩的时间足够长),然后仅当用户超过他们的最高分(可能是 5、10、30 分钟)时才启动评论流程下线了吗?

所以,我对这个问题做了一些测试,发现 ReviewInfo 仍然有效超过 2 小时,但更少比 3.

我通过在应用程序启动过程中加载 ReviewInfo 对象来测试它,当应用程序打开时,我将设备的时间增加了 3 小时。在这种情况下,它不起作用,但是当我使用 2.

时它确实起作用了

我还用更多的时间(甚至几天)对其进行了测试,但它从未奏效,但回到 2 小时后对话框可以正常显示,所以我认为这是他们当前的阈值。请注意,根据文档,他们可以随时更改此设置,因此请谨慎交易。

如文档中所述:

https://developer.android.com/guide/playcore/in-app-review/kotlin-java#request-review-info

Note: The ReviewInfo object is only valid for a limited amount of time. Your app should request a ReviewInfo object ahead of time (pre-cache) but only once you are certain that your app will launch the in-app review flow.

虽然您可能会发现 TTL,但它是一个实现细节,因此依赖它可能会适得其反。

我不建议在创建应用程序时加载,而是使用一些逻辑来保护请求。

例如,通常的做法是在用户成功执行操作或您要应用的任何逻辑后,在屏幕转换后尝试显示请求。这意味着您可以在前一个屏幕上启动请求,并且只有在新屏幕出现后才启动流程。

有关示例,请参阅 PlayCoreKtx 示例 https://github.com/android/app-bundle-samples/blob/master/PlayCoreKtx/app/src/main/java/com/google/android/samples/dynamicfeatures/state/ReviewViewModel.kt