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 objectval 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.resultshowReviewPrompt(reviewInfo)} else {// 请求评价流程失败,处理错误val exception: Exception? = task.exception// ...}}}
}