前言
询问用户是否喜欢该应用可能会导致您的应用被拒绝。这是一个例子:
https ://twitter.com/pietbrauer/status/791883047373246464
如果此处链接失效,请摘录苹果的回应:
3.2.2 ...您的应用包含可以操纵用户评论或App Store排行榜排名的内容和功能。具体来说,您的应用会过滤用户评论,并仅引导打算给您的应用评分 4 到 5 星的用户在 App Store 上完成评分...
我个人认为,如果您真正尝试解决用户问题,并且仍然让他们有机会在事后发表评论,那么这可能是一种有效的策略,但问题仍然存在,Apple 是否会这样看待它。
可能的解决方案
- 显示弹出窗口,询问用户是否喜欢/喜欢/等使用该应用程序。
- 尝试使用
[SKStoreReviewController requestReview]
以获得评论。
- 检查窗口的数量是否发生了变化,表明已经显示了一个弹出窗口。这里需要注意的是,这不是 100% 可靠的,因为其他一些事件可能会导致窗口数量发生变化。
- 如果窗口数量保持不变,请使用深度链接将用户转发到应用商店。
SKStoreReviewController
建议使用作为查询参数的文档action=write-review
直接进入评论页面。
这是一个简单的实现:
// make sure we the current iOS version supports in app reviews
if ([SKStoreReviewController class])
{
NSUInteger windowCount = [UIApplication sharedApplication].windows.count;
[SKStoreReviewController requestReview];
// give the review controller some time to display the popup
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
if (windowCount < [UIApplication sharedApplication].windows.count)
{
// assume review popup showed instead of some other system alert
// for example show "thank you"
}
else
{
// open app store to leave review
NSURL *reviewUrl = [NSURL URLWithString:@"{your-app-url}?action=write-review"];
[[UIApplication sharedApplication] openURL:reviewUrl];
}
});
}
注意:我没有将此代码提交到 App Store,所以这只是理论上的。