Tích hợp bài đánh giá trong ứng dụng (Kotlin hoặc Java)

Hướng dẫn này mô tả cách tích hợp bài đánh giá trong ứng dụng bằng cách sử dụng Kotlin hoặc Java. Nếu bạn sử dụng mã gốc hoặc Unity, hãy tham khảo các hướng dẫn khác.

Thiết lập môi trường phát triển

Thư viện đánh giá trong ứng dụng của Play là một phần của Thư viện Google Play Core. Vui lòng bao gồm phần phụ thuộc sau đây của Gradle để tích hợp Thư viện đánh giá trong ứng dụng của Play.

Groovy

// In your app’s build.gradle file:
...
dependencies {
    // This dependency is downloaded from the Google’s Maven repository.
    // So, make sure you also include that repository in your project's build.gradle file.
    implementation 'com.google.android.play:review:2.0.2'

    // For Kotlin users also add the Kotlin extensions library for Play In-App Review:
    implementation 'com.google.android.play:review-ktx:2.0.2'
    ...
}

Kotlin

// In your app’s build.gradle.kts file:
...
dependencies {
    // This dependency is downloaded from the Google’s Maven repository.
    // So, make sure you also include that repository in your project's build.gradle file.
    implementation("com.google.android.play:review:2.0.2")

    // For Kotlin users also import the Kotlin extensions library for Play In-App Review:
    implementation("com.google.android.play:review-ktx:2.0.2")
    ...
}

Tạo ReviewManager

ReviewManager là lớp giao tiếp cho phép ứng dụng của bạn bắt đầu một luồng bài đánh giá trong ứng dụng. Bạn có thể lấy thông tin này bằng cách tạo một bản sao thông qua lớp ReviewManagerFactory.

Kotlin

val manager = ReviewManagerFactory.create(context)

Java

ReviewManager manager = ReviewManagerFactory.create(context)

Yêu cầu đối tượng ReviewInfo

Làm theo hướng dẫn về thời điểm đề nghị bài đánh giá ứng dụng để xác định thời điểm thích hợp trong luồng người dùng ứng dụng nhằm nhắc người dùng thực hiện bài đánh giá (ví dụ: khi người dùng hoàn thành một cấp độ trong trò chơi). Khi ứng dụng của bạn chạy đến một trong những thời điểm này, hãy sử dụng bản sao ReviewManager để tạo tác vụ đề nghị. Nếu thành công, API sẽ trả về đối tượng ReviewInfo cần thiết để bắt đầu quy trình thực hiện luồng bài đánh giá trong ứng dụng.

Kotlin

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
    }
}

Java

ReviewManager manager = ReviewManagerFactory.create(this);
Task<ReviewInfo> request = manager.requestReviewFlow();
request.addOnCompleteListener(task -> {
    if (task.isSuccessful()) {
        // We can get the ReviewInfo object
        ReviewInfo reviewInfo = task.getResult();
    } else {
        // There was some problem, log or handle the error code.
        @ReviewErrorCode int reviewErrorCode = ((ReviewException) task.getException()).getErrorCode();
    }
});

Chạy luồng bài đánh giá trong ứng dụng

Sử dụng bản sao ReviewInfo để bắt đầu luồng bài đánh giá trong ứng dụng. Chờ cho đến khi người dùng hoàn tất luồng bài đánh giá trong ứng dụng trước khi ứng dụng của bạn tiếp tục luồng người dùng thông thường (chẳng hạn như chuyển sang cấp tiếp theo).

Kotlin

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.
}

Java

Task<Void> flow = manager.launchReviewFlow(activity, reviewInfo);
flow.addOnCompleteListener(task -> {
    // 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.
});

Các bước tiếp theo

Kiểm thử luồng bài đánh giá trong ứng dụng để xác nhận rằng việc tích hợp của bạn hoạt động chính xác.