Notice
Recent Posts
Recent Comments
Link
투케이2K
307. (AndroidStudio/android/java) ReviewManager 사용해 인앱 구글 플레이스토어 리뷰 팝업창 호출 실시 본문
Android
307. (AndroidStudio/android/java) ReviewManager 사용해 인앱 구글 플레이스토어 리뷰 팝업창 호출 실시
투케이2K 2022. 7. 13. 15:01[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : java
[소스 코드]
// [자바스크립트에서 호출하는 안드로이드 메소드]
@JavascriptInterface
public void setOpenReview() {
js_handler.post(new Runnable() {
public void run() {
Log.i("---","---");
Log.w("//===========//","================================================");
Log.i("","\n"+"[A_Main >> AndroidBridge :: setOpenReview() :: JS >> Android]");
Log.i("","\n"+"[전달받은 데이터 :: "+String.valueOf("")+"]");
Log.i("","\n"+"[설 명 :: "+String.valueOf("인앱 리뷰 열기 수행 명령 전달 받음")+"]");
Log.w("//===========//","================================================");
Log.i("---","---");
/**
* // -----------------------------------------
* [인앱 리뷰 팝업창 열기 설명]
* // -----------------------------------------
* 1. build.gradle 의존성 설정 :
*
* implementation 'com.google.android.play:review:2.0.0'
* implementation 'com.google.android.play:review-ktx:2.0.0'
* // -----------------------------------------
* 2. 랜덤 리뷰 팝업창 호출 되지 않는 원인 종류 :
*
* - 앱이 Play 스토어에 아직 게시되지 않았습니다
* (테스트를 위해 앱을 게시할 필요는 없지만 앱의 applicationID는 최소한 내부 테스트 트랙에서 사용할 수 있어야 합니다)
*
* - 사용자 계정으로 앱을 평가할 수 없습니다
* (앱이 사용자의 Google Play 라이브러리에 있어야 합니다)
*
* - 기본 계정이 Play 스토어에서 선택되지 않았습니다
* (기기에서 여러 계정을 사용할 수 있는 경우 기본 계정이 Play 스토어에서 선택된 계정인지 확인합니다)
*
* - 사용자 계정이 보호되고 있습니다
* (대신 Gmail 계정을 사용합니다)
*
* - 사용자가 이미 앱을 평가했습니다
* (Play 스토어에서 직접 리뷰를 삭제합니다)
*
* - 할당량에 도달했습니다
* (내부 테스트 트랙 또는 내부 앱 공유를 사용합니다)
*
* - 기기에서 Google Play 스토어 또는 Google Play 서비스 관련 문제가 발생했습니다
* (유효한 버전의 Play 스토어 및 Google Play 서비스가 있는 다른 기기를 사용합니다)
* // -----------------------------------------
* 3. 랜덤 리뷰 팝업창 호출 시점 및 테스트 설명 :
*
* - 실제 구글 플레이스토어에 배포 출시 된 애플리케이션
*
* - 하이드리드앱으로 자바스크립트 브릿지 명령이 내려오면 리뷰 팝업창 호출
*
* - 재수행 테스트를 하기 위해서는 구글 스토어 애플리케이션 데이터 및 캐시 삭제 후 다시 테스트
* // -----------------------------------------
* 4. 참고 사이트 :
* https://developer.android.com/guide/playcore/in-app-review/kotlin-java?hl=ko#java
* https://developer.android.com/guide/playcore/in-app-review/test?hl=ko
* // -----------------------------------------
* */
try {
ReviewManager manager = ReviewManagerFactory.create(A_Main.this);
Task<ReviewInfo> request = manager.requestReviewFlow();
request.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
Log.i("---","---");
Log.w("//===========//","================================================");
Log.i("","\n"+"[A_Main >> AndroidBridge :: setOpenReview() :: JS >> Android]");
Log.i("","\n"+"[로 직 :: "+String.valueOf("인앱 리뷰 열기 수행 정상")+"]");
Log.i("","\n"+"[getResult :: "+String.valueOf(request.getResult().describeContents())+"]");
Log.w("//===========//","================================================");
Log.i("---","---");
// [리뷰 창 호출 실시]
ReviewInfo reviewInfo = task.getResult();
manager.launchReviewFlow(A_Main.this, reviewInfo);
} else {
// There was some problem, log or handle the error code.
// @ReviewErrorCode int reviewErrorCode = ((TaskException) task.getException()).getErrorCode();
Log.i("---","---");
Log.e("//===========//","================================================");
Log.i("","\n"+"[A_Main >> AndroidBridge :: setOpenReview() :: JS >> Android]");
Log.i("","\n"+"[로 직 :: "+String.valueOf("인앱 리뷰 열기 수행 에러 발생")+"]");
Log.i("","\n"+"[getResult :: "+String.valueOf(request.getResult().describeContents())+"]");
Log.e("//===========//","================================================");
Log.i("---","---");
}
});
}
catch (Exception e){
e.printStackTrace();
}
}
});
}
[결과 출력]
반응형
'Android' 카테고리의 다른 글
Comments