1、集成依赖
implementation("com.google.android.play:review:2.0.1")
implementation("com.google.android.play:review-ktx:2.0.1")
2、创建 ReviewManager
请遵循有关何时请求应用内评价的指南,以确定在应用的用户流的哪些阶段适合提示用户进行评价(例如,当用户在游戏中完成某个关卡时)。当您的应用达到其中一个阶段时,请使用 ReviewManager 实例创建请求任务。如果请求成功,该 API 将返回启动应用内评价流程所需的 ReviewInfo 对象。
val request = manager.requestReviewFlow()
request.addOnCompleteListener { task ->
if (task.isSuccessful) {
// We got the ReviewInfo object
val reviewInfo = task.result
} else {
// There was some problem, log or handle the error code.
@ReviewErrorCode val reviewErrorCode = (task.getException() as ReviewException).errorCode
}
}
3、启动应用内评价流程
使用 ReviewInfo 实例启动应用内评价流程。等到用户完成应用内评价流程后,再继续执行应用的正常用户流(例如进入下一关)。
val flow = manager.launchReviewFlow(activity, reviewInfo)
flow.addOnCompleteListener { _ ->
// The flow has finished. The API does not indicate whether the user
// reviewed or not, or even whether the review dialog was shown. Thus, no
// matter the result, we continue our app flow.
}
步骤整合
// 初始化 ReviewManager 实例
private val reviewManager: ReviewManager by lazy {
ReviewManagerFactory.create(context)
}
// 请求评价流程的函数
private fun requestReviewFlow() {
GlobalScope.launch(Dispatchers.Default) {
val request: Task<ReviewInfo> = reviewManager.requestReviewFlow()
request.addOnCompleteListener { task ->
if (task.isSuccessful) {
// 获取到评价流程,可以继续处理
val reviewInfo: ReviewInfo = task.result
showReviewPrompt(reviewInfo)
} else {
// 请求评价流程失败,处理错误
val exception: Exception? = task.exception
// ...
}
}
}
}