2011-09-21 47 views
7

我想知道是否可以將我的用戶從我的應用程序直接帶到應用商店的應用程序評論部分?開放App Store以在我的應用程序內進行評分

我不希望它在Safari中打開,我希望它可以直接在設備上打開App Store應用程序並將它們帶到評論頁面。

我試過以下;

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=437688779&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software"]]; 

但是,單擊似乎打開iTunes應用程序,而不是應用程序商店,然後就給出了一個錯誤說「無法連接到存儲。安全連接不能建立」。

任何想法?

回答

18

正如this blog:

- (IBAction)gotoReviews:(id)sender 
{ 
    NSString *str = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa"; 
    str = [NSString stringWithFormat:@"%@/wa/viewContentsUserReviews?", str]; 
    str = [NSString stringWithFormat:@"%@type=Purple+Software&id=", str]; 

    // Here is the app id from itunesconnect 
    str = [NSString stringWithFormat:@"%@yourAppIDHere", str]; 

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]]; 
} 
+0

完美工作。非常感謝你恩德。 –

+0

當你只是附加字符串時,請勿使用 - [NSString stringWithFormat:]。 - [NSString stringByAppendingString:]將做同樣的事情,但速度更快,效率更高(無緩衝區等)。 –

+0

您可以跳過「type = ...」部分,以便網址顯示「.../viewContentsUserReviews?id = ...」。這適用於iOS 7.1.2以及8.0.2(在真實設備上測試)。 –

4

你想要一個itms://鏈接和here's一個方便的地方來生成一個。確保你將協議從http(s):更改爲itms:(或itms-apps:這似乎是新的方式)。

+0

嗨,我已經試過了也。對不起,應該提到。也不起作用 –

+0

請確保您將協議從'http(s):'更改爲'itms:' –

1

看到您可以只使用類iRate,爲我所做的工作。

22

似乎有一個值得提及的問題在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; 
} 
+0

完美答案,因爲更新:) –

1

使用此: - @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@";

相關問題