似乎有一個值得提及的問題在iOS 7.0中描述here。您可以看到Appirator如何處理其源here中的問題。
基本上,你需要處理7.0用戶不同,像這樣:(第一行是一樣的接受的解決方案,附加的字符串只是在同一行。)
NSString *str = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=yourAppIDHere";
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
str = @"itms-apps://itunes.apple.com/app/idyourAppIDHere";
}
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
更新2015年8月19日
上述URL不適用於iOS 8.0。更新了所有iOS版本代碼的餐飲將是:
NSString *str;
float ver = [[[UIDevice currentDevice] systemVersion] floatValue];
if (ver >= 7.0 && ver < 7.1) {
str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@",appID];
} else if (ver >= 8.0) {
str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%@&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software",appID];
} else {
str = [NSString stringWithFormat:@"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",appID];
}
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
來源:Appirator
更新14 2017年
11月iOS的10.3,我們可以使用SKStoreReviewController申請審覈,這實際上會在您的應用中打開一個整齊的小蹦跳,而不是從您的應用導航:
if (@available(iOS 10.3, *)) {
[SKStoreReviewController requestReview];
return;
}
完美工作。非常感謝你恩德。 –
當你只是附加字符串時,請勿使用 - [NSString stringWithFormat:]。 - [NSString stringByAppendingString:]將做同樣的事情,但速度更快,效率更高(無緩衝區等)。 –
您可以跳過「type = ...」部分,以便網址顯示「.../viewContentsUserReviews?id = ...」。這適用於iOS 7.1.2以及8.0.2(在真實設備上測試)。 –