Android/iOS 应用内评价功能
应用内评价,即 应用中就能拉起 对应商店的对应App的评价窗口,而无需用户到商店App内评价
目前整理到 有应用内评价功能的平台:
- Android-GooglePlay
- iOS-AppleStore
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 应用内评价
#import <StoreKit/StoreKit.h>
///拉起 AppleStore应用内评价(iOS=10.3+适用)
void ShowAppleReview()
{
if([SKStoreReviewController respondsToSelector:@selector(requestReview)]) {
//拉起应用内评价
[SKStoreReviewController requestReview];
} else {
//设备/系统不支持应用内评价
}
}
弹出限制:
- Development包可以每调必弹
- TestFlight包不会弹
- Store正式包大约 3次/每年;已评价过可能就不会再弹
参考文章:
综述
应用内评价方法,开发者业务层可以无限制调用,但最终用户层是否能看到,得看 对应商店的限制条件(一旦被限制了,用户看不到、商店端也不会告知开发者业务层)
因为弹出限制条件的存在,所以建议开发者 合理规划弹出机会