Android/iOS 应用内评价功能

应用内评价,即 应用中就能拉起 对应商店的对应App的评价窗口,而无需用户到商店App内评价

目前整理到 有应用内评价功能的平台:

  • Android-GooglePlay
  • iOS-AppleStore

Android-GooglePlay 应用内评价

应用内评价表现-Android-GooglePlay

public interface GooglePlayFlowListener {
    void OnCompleteListener();
    void OnErrorListener();
}

/**
 * 拉起 GooglePlay应用内评价
 *
 * @param context  context
 * @param listener listener
 */
public static void ShowGooglePlayReview(@NonNull Activity context, GooglePlayFlowListener listener) {
    ReviewManager manager = ReviewManagerFactory.create(context);
    Task<ReviewInfo> request = manager.requestReviewFlow();
    request.addOnCompleteListener(task -> {
        if (task.isSuccessful()) {
            ReviewInfo reviewInfo = task.getResult();
            Task<Void> flow = manager.launchReviewFlow(context, reviewInfo);
            flow.addOnCompleteListener(task1 -> {
                if (listener != null) {
                    listener.OnCompleteListener();
                }
            });
        } else {
            // There was some problem, log or handle the error code.
            //@ReviewErrorCode int reviewErrorCode = ((TaskException) task.getException()).getErrorCode();
            if (listener != null) {
                listener.OnErrorListener();
            }
        }
    });
}

弹出限制:

  • Development包、轨道包都可能弹,次数不一
  • Store正式包大约 1~2次/每月;已评价过可能就不会再弹

iOS-AppleStore 应用内评价

应用内评价表现-iOS-AppleStore

#import <StoreKit/StoreKit.h>

///拉起 AppleStore应用内评价(iOS=10.3+适用)
void ShowAppleReview()
{
    if([SKStoreReviewController respondsToSelector:@selector(requestReview)]) {
        //拉起应用内评价
        [SKStoreReviewController requestReview];
    } else {
        //设备/系统不支持应用内评价
    }
}

弹出限制:

  • Development包可以每调必弹
  • TestFlight包不会弹
  • Store正式包大约 3次/每年;已评价过可能就不会再弹

参考文章:

综述

应用内评价方法,开发者业务层可以无限制调用,但最终用户层是否能看到,得看 对应商店的限制条件(一旦被限制了,用户看不到、商店端也不会告知开发者业务层)

因为弹出限制条件的存在,所以建议开发者 合理规划弹出机会

posted @ 2024-06-01 14:40  SouthBegonia  阅读(82)  评论(0编辑  收藏  举报