Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Cómo integrar opiniones integradas en la app (código nativo)

En esta guía, se describe cómo integrar opiniones integradas en tu app usando código nativo (C o C++). Hay guías de integración separadas que puedes usar con Kotlin o Java o Unity.

Descripción general del SDK nativo

El SDK nativo de Play Core forma parte de la familia del SDK de Play Core. El SDK nativo de Play Core incluye un archivo de encabezado C, review.h, que une ReviewManager del SDK de Play Core de Java. Ese archivo de encabezado permite que la app llame a la API directamente desde tu código nativo. Para obtener una descripción general de las funciones públicas que están disponibles, consulta la documentación del módulo nativo de opiniones de Play.

ReviewManager_requestReviewFlow inicia una solicitud que recopila la información necesaria para iniciar el flujo de opiniones integradas en la app más tarde. Puedes realizar un seguimiento del resultado de la solicitud mediante ReviewManager_getReviewStatus. Para obtener más información sobre todos los estados que puede mostrar ReviewManager_getReviewStatus, consulta ReviewErrorCode.

Las funciones de solicitud y de inicio muestran REVIEW_NO_ERROR si la función tiene éxito.

Cómo configurar tu entorno de desarrollo

A fin de configurar tu entorno de desarrollo, sigue las instrucciones de configuración en la sección de código nativo, en la guía de la biblioteca de Play Core.

Incluye review.h

Después de integrar el SDK nativo de Play Core en tu proyecto, incluye la siguiente línea en los archivos que contendrán llamadas a la API:

#include "play/review.h"

Inicializa la API de opiniones

Siempre que quieras usar la API, deberás inicializarla primero llamando a la función ReviewManager_init, como se muestra en el siguiente ejemplo compilado con android_native_app_glue.h:

void android_main(android_app* app) {
  app->onInputEvent = HandleInputEvent;

  ReviewErrorCode error_code = ReviewManager_init(app->activity->vm, app->activity->clazz);
  if (error_code == REVIEW_NO_ERROR) {
    // You can use the API.
  }
}

Solicita el flujo de opiniones integrado en la app

Sigue las instrucciones sobre cuándo solicitar opiniones integradas en la app para determinar buenos puntos en el flujo de usuarios de tu app a fin de solicitarle al usuario que brinde una opinión (por ejemplo, después de que descarte la pantalla de resumen al final de un nivel en un juego). Cuando tu app se acerque a uno de esos puntos, llama a ReviewManager_requestReviewFlow para solicitar de forma asíncrona la información que tu app necesita para iniciar un flujo de opiniones integradas. Supervisa el progreso de la operación ReviewManager_requestReviewFlow llamando a ReviewManager_getReviewStatus, por ejemplo, una vez en cada fotograma. Esto puede tardar unos segundos, por lo que deberías iniciar este proceso antes de que tu app alcance el punto en el que quieras mostrar el flujo de opiniones integradas.

ReviewErrorCode error_code = ReviewManager_requestReviewFlow();
if (error_code == REVIEW_NO_ERROR) {
    // The request has successfully started, check the status using
    // ReviewManager_getReviewStatus.
}

Controla los estados e inicia el flujo de opiniones integradas en la app

Cada vez que se inicia una solicitud o el flujo de opiniones integradas en la app, puedes verificar el estado mediante ReviewManager_getReviewStatus. Eso te permite definir la lógica según el estado de la API. Una forma de abordar esto es mantener el estado como una variables globales y verificar si este es REVIEW_REQUEST_FLOW_COMPLETED cuando el usuario realiza una acción determinada (por ejemplo, presionar un botón "Nivel siguiente" en un juego), como se muestra a continuación:

ReviewStatus status;
ReviewErrorCode error_code = ReviewManager_getReviewStatus(&status);
if (error_code != REVIEW_NO_ERROR) {
    // There was an error with the most recent operation.
    return;
}

switch (status) {
    case REVIEW_REQUEST_FLOW_PENDING:
        // Request is ongoing. The flow can't be launched yet.
        break;
    case REVIEW_REQUEST_FLOW_COMPLETED:
        // Request completed. The flow can be launched now.
        break;
    case REVIEW_LAUNCH_FLOW_PENDING:
        // The review flow is ongoing, meaning the dialog might be displayed.
        break;
    case REVIEW_LAUNCH_FLOW_COMPLETED:
        // The review flow has finished. Continue with your app flow (for
        // example, move to the next screen).
        break;
    default:
        // Unknown status.
        break;
}

Cuando el estado sea REVIEW_REQUEST_FLOW_COMPLETED y tu app esté lista, inicia el flujo de opiniones integradas en la app:

// This call uses android_native_app_glue.h.
ReviewErrorCode error_code = ReviewManager_launchReviewFlow(app->activity->clazz);
if (error_code != REVIEW_NO_ERROR) {
    // There was an error while launching the flow.
    return;
}

Después de iniciar el flujo de opiniones integradas en la app, continúa revisando el estado a fin de detectar la finalización y continúa con el flujo de la app. Una forma común de procesar esto sería seguir el patrón de Bucle de juego.

Recursos gratuitos

No te olvides de liberar recursos llamando a la función ReviewManager_destroy una vez que tu app haya terminado de usar la API (por ejemplo, después de que se complete el flujo de opiniones integradas en la app).

void ReviewManager_destroy();

Próximos pasos

Prueba el flujo de opiniones integradas en la app a fin de verificar que la integración funcione correctamente.