我将以下内容添加到我的AppDelegate和导入的StoreKit中。评审模式按预期在发射时弹出。我的问题是,我是负责通话频率的人,还是苹果?文档仍然很轻,但是我读到了其他地方,苹果将限制每个用户每年使用3次,我能相信他们会在显示之间增加适当的时间(最好是几个月)吗?
在开发过程中,每当我推出这款应用程序时,它就会弹出,我讨厌我的用户不得不在很多次发布时拒绝它3次,然后在12个月后才会再次被问到。
现在10.3发布了,我对其他人是如何解决这个问题感兴趣的。
干杯。
if #available(iOS 10.3, *) {
print("Show Review Controller")
SKStoreReviewController.requestReview()
} else {
print("Cannot Show Review Controller")
// Fallback on earlier versions
}发布于 2017-03-28 11:59:22
我添加了一个存储在UserDefaults中的计数。每次发生特定操作时,它都会增加,当count % 10 == 0调用SKStoreReviewController.requestReview()时(普通用户很可能每次使用应用程序都会增加一次计数)
这可能显示也可能不显示评审请求,但它确保它不会显示得太频繁。
或者,考虑存储lastReivewAttemptDate和请求之间的最小间隔。
发布于 2017-06-16 21:00:42
你不负责计算这个问题,但这样做可以让你在潜在的电话用完时更具战略性。
为NSUserDefaults中的每个调用保存时间戳似乎是最灵活的跟踪方式。这就是我在obj-c所做的:
// Rate app action for iOS 10.3+
-(void)displayDialog {
[SKStoreReviewController requestReview];
[self storeTimestamp:PromptTimestampsKey];
}
- (void)storeTimestamp:(NSString *)key {
NSNumber *todayTimestamp = [NSNumber numberWithDouble:[[NSDate date] timeIntervalSince1970]];
NSMutableArray *timestamps = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] arrayForKey:key]];
// Remove timestamps more than a year old
for (NSNumber *timestamp in timestamps) {
if ((todayTimestamp.doubleValue - timestamp.doubleValue) > SecondsInYear) {
[timestamps removeObject:timestamp];
}
}
// Store timestamp for this call
[timestamps addObject:todayTimestamp];
[[NSUserDefaults standardUserDefaults] setObject:timestamps forKey:key];
}https://stackoverflow.com/questions/43068370
复制相似问题