Este guia descreve como integrar avaliações no seu app usando o código nativo (C ou C++). Há guias de integração separados se você estiver usando o Kotlin ou Java ou o Unity.
Visão geral do SDK nativo
O SDK nativo do Play Core faz parte da família do
SDK do Play Core. O SDK do Play
Core Native inclui um arquivo de cabeçalho C, review.h
, que encapsula
ReviewManager
do SDK Java Play Core. Esse arquivo de cabeçalho permite que o app chame a API
diretamente do código nativo. Para uma visão geral das funções públicas
disponíveis, consulte a documentação do módulo nativo de avaliação
do Google Play.
ReviewManager_requestReviewFlow
inicia uma solicitação que coleta as informações necessárias para iniciar o
fluxo de avaliação no app posteriormente. É possível acompanhar o resultado da solicitação usando
ReviewManager_getReviewStatus
.
Para mais informações sobre todos os status que ReviewManager_getReviewStatus
pode retornar, consulte ReviewErrorCode
.
As funções de solicitação e inicialização retornarão REVIEW_NO_ERROR
se a
função for bem-sucedida.
Configurar o ambiente para desenvolvedores
Para configurar o ambiente para desenvolvedores, siga as instruções de configuração na seção Nativo do guia da biblioteca Play Core.
Incluir review.h
Depois de integrar o SDK do Play Core Native ao projeto, inclua a seguinte linha nos arquivos que contêm chamadas de API:
#include "play/review.h"
Inicializar a API Review
Sempre que você quiser usar a API, inicialize-a primeiro chamando a função
ReviewManager_init
, conforme mostrado no exemplo a seguir criado com
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.
}
}
Solicitar o fluxo de avaliação no app
Siga as orientações sobre quando solicitar
avaliações no app para determinar bons pontos
no fluxo do usuário para solicitar uma avaliação (por exemplo, depois de um
usuário dispensar a tela de resumo ao final de um nível em um jogo). Quando seu
app se aproximar de um desses pontos, chame
ReviewManager_requestReviewFlow
para solicitar de forma assíncrona as informações de que seu app precisa para iniciar uma
avaliação no app fluxo. Monitore o progresso da operação
ReviewManager_requestReviewFlow
chamando
ReviewManager_getReviewStatus
,
por exemplo, uma vez por frame. Isso pode levar alguns segundos. Portanto,
inicie esse processo antes que o app chegue ao ponto quando você quiser
exibir o fluxo de revisão.
ReviewErrorCode error_code = ReviewManager_requestReviewFlow();
if (error_code == REVIEW_NO_ERROR) {
// The request has successfully started, check the status using
// ReviewManager_getReviewStatus.
}
Processar status e iniciar o fluxo de avaliação no app
Sempre que uma solicitação é iniciada ou o fluxo de avaliação no app é iniciado, é possível
verificar o status usando
ReviewManager_getReviewStatus
.
Isso permite que você defina a lógica dependendo do status da API. Uma maneira de
abordar isso é manter o status como uma variável global e verificar se o
status é REVIEW_REQUEST_FLOW_COMPLETED
quando o usuário realiza uma determinada
ação (por exemplo, tocar em uma “Próxima Fase”. em um jogo), conforme mostrado no
exemplo a seguir:
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;
}
Quando o status for REVIEW_REQUEST_FLOW_COMPLETED
e seu app estiver pronto, inicie
o fluxo de avaliação no aplicativo:
// 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; }
Depois de iniciar o fluxo de avaliação no app, continue verificando o status para continuar e prossiga com o fluxo do app. Uma maneira comum de lidar com isso é seguir o padrão Loop de jogo.
Liberar os recursos
Não se esqueça de liberar os recursos chamando a função ReviewManager_destroy
quando seu app terminar de usar a API (por exemplo, após a conclusão do
fluxo de avaliação no app).
void ReviewManager_destroy();
A seguir
Teste o fluxo de avaliações no app para verificar se a integração está funcionando corretamente.