我想在我的应用程序中添加一个“评分/评论此应用程序”的功能。
是否有一种方式可以直接链接到应用商店中的屏幕,以便他们可以对应用程序进行评论?这样客户就不必通过主要应用程序链接点击。谢谢。
编辑:由于缺乏回应,我在此启动了悬赏。 只是为了确保非常清楚:我知道我可以链接到应用商店中我的应用程序页面,并要求用户从那里单击“评论此应用程序”屏幕。 问题是是否可能直接链接到“评价此应用程序”屏幕,以便他们不必点击任何内容。
我想在我的应用程序中添加一个“评分/评论此应用程序”的功能。
是否有一种方式可以直接链接到应用商店中的屏幕,以便他们可以对应用程序进行评论?这样客户就不必通过主要应用程序链接点击。谢谢。
编辑:由于缺乏回应,我在此启动了悬赏。 只是为了确保非常清楚:我知道我可以链接到应用商店中我的应用程序页面,并要求用户从那里单击“评论此应用程序”屏幕。 问题是是否可能直接链接到“评价此应用程序”屏幕,以便他们不必点击任何内容。
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
在我的设备上(Xcode 5 - iOS 7 - 设备),这个方法可行:
itms-apps://itunes.apple.com/app/idYOUR_APP_ID
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software
<p>代码片段(你可以直接复制和粘贴):</p>
#define YOUR_APP_STORE_ID 545174222 //Change this one to your ID
static NSString *const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%d";
static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d";
[NSURL URLWithString:[NSString stringWithFormat:([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f)? iOS7AppStoreURLFormat: iOSAppStoreURLFormat, YOUR_APP_STORE_ID]]; // Would contain the right link
action=write-review
。我已经在iOS 10.2上进行了测试,它可以正常工作,但我不知道它能向后兼容到多少版本。这将打开“撰写评论”对话框,而不仅仅是显示评论选项卡。例如:https://itunes.apple.com/gb/app/id929726748?action=write-review&mt=8 - Joseph Duffy更新:
Swift 5.1,Xcode 11
已在真实设备iOS 13.0上测试(保证可用)
import StoreKit
func rateApp() {
if #available(iOS 10.3, *) {
SKStoreReviewController.requestReview()
} else {
let appID = "Your App ID on App Store"
let urlStr = "https://itunes.apple.com/app/id\(appID)" // (Option 1) Open App Page
let urlStr = "https://itunes.apple.com/app/id\(appID)?action=write-review" // (Option 2) Open App Review Page
guard let url = URL(string: urlStr), UIApplication.shared.canOpenURL(url) else { return }
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url) // openURL(_:) is deprecated from iOS 10.
}
}
}
编辑:iOS 11解决方案
这是我原来答案的解决方案(请参见下文)。在使用iOS 11时,以下链接格式将起作用:
https://itunes.apple.com/us/app/appName/idAPP_ID?mt=8&action=write-review
只需将APP_ID
替换为您具体的应用程序ID即可。让链接起作用的关键是国家代码。上面的链接使用了us
代码,但实际上使用哪个代码并不重要。用户将自动重定向到他的商店。
iOS 11更新:
似乎其他答案中提供的所有解决方法都不能在iOS 11上直接转至评论页面。
问题很可能是因为iOS 11 App Store应用程序中的应用程序页面不再有评论选项卡。取而代之的是,评论现在直接位于说明和屏幕截图下方。当然,仍然可以直接到达此部分(例如使用某种锚点),但似乎这不受苹果支持/意图。
使用以下链接之一不再起作用。它们仍然将用户带到App Store应用程序,但只有一个空白页面:
itms-apps://itunes.apple.com/app/idYOUR_APP_ID?action=write-review
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software
每个仍在使用这些链接的人都应尽快更新他们的应用程序,因为引导用户前往空白的应用商店页面可能不是您想要的结果。
但是,不引用评论页面而引用应用程序页面的链接仍然有效,例如:
itms-apps://itunes.apple.com/app/idYOUR_APP_ID (same as above, but without write-review parameter)
所以,你仍然可以将用户引导到你的应用商店页面,但不能直接进入评论部分了。现在用户必须手动滚动到评论部分来留下反馈。
毫无疑问,这对用户体验是一个“巨大而棒的好处,将帮助开发人员吸引用户留下高质量的评论,而不会让他们感到烦恼”。干得好,苹果......
以上内容全部正确。这只是一个示例,可以插入到应用程序中,并将 {YOUR APP ID} 更改为实际的应用程序 ID,该 ID 可从 iTunes Connect 中获取以显示“评价”页面。请注意,如上所述,它在模拟器上无法工作,仅适用于设备。
openURL
更改进行了更正。 NSString * appId = @"{YOUR APP ID}";
NSString * theUrl = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%@&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software",appId];
int vers = (int) [[UIDevice currentDevice].systemVersion integerValue];
if (vers > 6 && vers < 12 ) theUrl = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@",appId];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:theUrl] options:@{} completionHandler:nil];
所有上述方法都是正确的,但现在使用 SKStoreProductViewController 可以提供更好的用户体验。要使用它,您需要执行以下操作:
添加所需的productViewControllerDidFinish方法:
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
[viewController dismissViewControllerAnimated: YES completion: nil];
}
检查SKStoreProductViewController类是否可用,如果可用则显示它,否则切换到App Store:
extern NSString* cAppleID; // must be defined somewhere...
if ([SKStoreProductViewController class] != nil) {
SKStoreProductViewController* skpvc = [[SKStoreProductViewController new] autorelease];
skpvc.delegate = self;
NSDictionary* dict = [NSDictionary dictionaryWithObject: cAppleID forKey: SKStoreProductParameterITunesItemIdentifier];
[skpvc loadProductWithParameters: dict completionBlock: nil];
[[self _viewController] presentViewController: skpvc animated: YES completion: nil];
}
else {
static NSString* const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%@";
static NSString* const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@";
NSString* url = [[NSString alloc] initWithFormat: ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f) ? iOS7AppStoreURLFormat : iOSAppStoreURLFormat, cAppleID];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
}
在新的iOS 11 App Store中,短的应用商店URL无法正确打开“撰写评论”界面。例如,以下URL就无法正常工作:
https://itunes.apple.com/app/id333903271?mt=8&action=write-review
解决方法是在URL中加入两个字母的国家代码和应用名称,如下所示:
https://itunes.apple.com/us/app/twitter/id333903271?mt=8&action=write-review
或者
itms-apps://itunes.apple.com/us/app/twitter/id333903271?mt=8&action=write-review
您可以从这里获取您的应用程序的完整URL:https://linkmaker.itunes.apple.com/
这将成功地在iOS 11 App Store中打开“撰写评论”界面。
编辑:如@Theo在下面提到的那样,国家代码不需要本地化,并且URL中的应用程序名称如果更改也不需要更新。
希望苹果公司会很快修复这个问题,使更短的URL也能正常使用。请参见rdar://34498138
mt=8
不是必需的。此外,显然URL中的国家代码和应用程序名称是必需的,但会被忽略。因此,当应用程序名称更改时,无需对URL进行本地化或更新。 - Theoitms-apps://itunes.apple.com/xy/app/foo/id{your_app_id}?action=write-review
- DaveAlden在 iOS 11+(新的应用商店)中,有一种新的方法可以直接打开“撰写评论”对话框。
iOS 11 示例:
itms-apps://itunes.apple.com/us/app/id1137397744?action=write-review
https://itunes.apple.com/us/app/id1137397744?action=write-review
注:
/us/
)。任何国家代码都可以,没有关系。1137397744
) 更改为您的应用程序ID (从iTunes URL获取)。func jumpToAppStore(appId: String) {
let url = "itms-apps://itunes.apple.com/app/id\(appId)"
UIApplication.sharedApplication().openURL(NSURL(string: url)!)
}
所有以前的链接都不再直接指向“评论”选项卡,
这个链接将直接指向“评论”选项卡:
https://itunes.apple.com/app/viewContentsUserReviews?id=AppID
或者
itms-apps://itunes.apple.com/app/viewContentsUserReviews?id=AppID
您可以在URL启动器功能中使用此链接