Answers:
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
这对我有效(Xcode 5-iOS 7- Device!):
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
代码段(您可以复制并粘贴):
#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上对其进行了测试,并且可以正常工作,但是我不知道它可以追溯到多远。这将打开“写评论”对话框,而不仅仅是显示评论选项卡。例如:itunes.apple.com/gb/app/...
更新:
Swift 5.1,Xcode 11
在Real Device 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.
}
}
}
上面写的所有内容都是正确的。只需一个示例即可插入到应用程序中,并将{YOUR APP ID}更改为实际的应用程序ID,该示例取自iTunesconnect以显示“评论”页面。请注意,如上所述,它不能在Simulator上运行,而只能在设备上运行。
-由于ios 7的更改而更正。
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];
if ([[UIDevice currentDevice].systemVersion integerValue] > 6) theUrl = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@",appId];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:theUrl]];
编辑: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应用的应用页面确实不具有审查标签了。现在,评论位于描述和屏幕截图的正下方。当然,仍然有可能直接到达此部分(例如,使用某种锚),但似乎这是不支持 Apple /不打算这样做。
使用以下链接之一不再起作用。他们仍将用户带到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
仍如何使用这些链接的每个人都应尽快更新其应用程序,因为将用户引至空白的App Store页面很可能不是您想要的。
但是,不引用“审阅”页面而是指向“应用程序”页面的链接仍然有效,例如
itms-apps://itunes.apple.com/app/idYOUR_APP_ID (same as above, but without write-review parameter)
因此,您仍然可以将用户吸引到您的应用商店页面,但不再直接进入评论部分。用户现在必须手动向下滚动到“评论”部分以留下他们的反馈。
毫无疑问,这“给用户体验带来了巨大的好处,它将帮助开发人员吸引用户留下高质量的评论,而不会惹恼他们”。做得好苹果...
以上所有方法都是正确的,但是如今使用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]];
}
简短的App Store URL无法在新的iOS 11 App Store中正确打开“写评论”界面。例如,这并不能正常工作:
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不需要本地化或更新。
itms-apps://itunes.apple.com/xy/app/foo/id{your_app_id}?action=write-review
以前的所有链接都不再直接指向“评论”标签,
该链接将直接指向``评论选项卡'':
https://itunes.apple.com/app/viewContentsUserReviews?id=AppID
或
itms-apps://itunes.apple.com/app/viewContentsUserReviews?id = AppID
在iOS7中,将您的应用切换到App Store进行评分和查看的URL已更改:
itms-apps://itunes.apple.com/app/idAPP_ID
需要将APP_ID替换为您的应用程序ID。
对于iOS 6及更高版本,以前的答案中的URL正常工作。
资料来源:Appirater
享受编码..!
在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获取)。对我而言,使用此URL是完美的解决方案。它将用户直接带到Write a Review section
。感谢@Joseph Duffy。一定要试
URL = 用您的itms-apps://itunes.apple.com/gb/app/idYOUR_APP_ID_HERE?action=write-review&mt=8
替换您的YOUR_APP_ID_HERE AppId
对于示例代码,请尝试以下操作:
Swift 3,Xcode 8.2.1:
let openAppStoreForRating = "itms-apps://itunes.apple.com/gb/app/id1136613532?action=write-review&mt=8"
if let url = URL(string: openAppStoreForRating), UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
} else {
showAlert(title: "Cannot open AppStore",message: "Please select our app from the AppStore and write a review for us. Thanks!!")
}
在这里,showAlert是的自定义函数UIAlertController
。
从iOS 10.3开始,您可以将action=write-review
查询项附加到您的https://itunes.apple.com/...
和https://appsto.re/...
URL。在iOS 10.3及Write a review
更高版本上,它将自动打开,而在较低iOS版本上,它将退回到该应用程序的“应用程序商店”页面。
iOS 11更新:使用Apple的linkmaker:linkmaker.itunes.apple.com
和append &action=write-review
,似乎是最安全的方法。
NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
对于> = iOS8 :(简化的@EliBud答案)。
#define APP_STORE_ID 1108885113
- (void)rateApp{
static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d";
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:iOSAppStoreURLFormat, APP_STORE_ID]];
if ([[UIApplication sharedApplication] canOpenURL:appStoreURL]) {
[[UIApplication sharedApplication] openURL:appStoreURL];
}
}
我在iOS 10中遇到相同的问题,可以打开iTunes费率部分,调用:
基本上,它将最后一个url变量更改为“ mt = 7”
干杯
通过SKStoreProductViewController可以轻松地在应用商店中链接到您的应用。但是我有点挣扎,所以我决定在这里展示整个过程和一些必要的代码。此技术还可以确保始终使用正确的存储(对于本地化的应用程序很重要)。
要将您的应用中的应用商店中的任何应用的产品屏幕与您的任何应用ViewController一起显示,请执行以下步骤:
但最重要的是:由于某种原因,这在模拟器中不起作用-您必须在具有Internet连接的真实设备上进行构建和安装。
SWIFT 4:这是根据前面描述的步骤编写的代码:
// ----------------------------------------------------------------------------------------
// 2. Import StoreKit into the ViewController class
// ----------------------------------------------------------------------------------------
import StoreKit
// ...
// within your ViewController
// ----------------------------------------------------------------------------------------
// 4. Create the method to present the StoreView with the product screen you want
// ----------------------------------------------------------------------------------------
func showStore() {
// Define parameter for product (here with ID-Number)
let parameter : Dictionary<String, Any> = [SKStoreProductParameterITunesItemIdentifier : NSNumber(value: 742562928)]
// Create a SKStoreProduktViewController instance
let storeViewController : SKStoreProductViewController = SKStoreProductViewController()
// set Delegate
storeViewController.delegate = self
// load product
storeViewController.loadProduct(withParameters: parameter) { (success, error) in
if success == true {
// show storeController
self.present(storeViewController, animated: true, completion: nil)
} else {
print("NO SUCCESS LOADING PRODUCT SCREEN")
print("Error ? : \(error?.localizedDescription)")
}
}
}
// ...
// ----------------------------------------------------------------------------------------
// 3. Make your ViewController conforming the protocol SKStoreProductViewControllerDelegate
// ----------------------------------------------------------------------------------------
extension ViewController : SKStoreProductViewControllerDelegate {
// ----------------------------------------------------------------------------------------
// 5. Dismiss the StoreView
// ----------------------------------------------------------------------------------------
func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
print("RECEIVED a FINISH-Message from SKStoreProduktViewController")
viewController.dismiss(animated: true, completion: nil)
}
}
这是我在应用程序中使用的代码;
-(void)rateApp {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"itms-apps://itunes.apple.com/app/" stringByAppendingString: @"id547101139"]]];
}
接受的答案无法加载“审阅”选项卡。我发现以下方法可以加载没有“详细信息”选项卡的“查看”选项卡。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id={APP_ID}&pageNumber=0&sortOrdering=2&mt=8"]];
{APP_ID}
用您的应用程序应用商店存储应用ID 替换。
此外,您可以继续在应用程序的设置或配置屏幕中包含一个永久链接,该链接会深链接至您的App Store产品页面。要自动打开一个页面,用户可以在App Store上写评论,请将查询参数action = write-review附加到您的产品URL。
因此,URL将如下所示:
itms-apps://itunes.apple.com/app/id YOUR_APP_ID?action = write-review
如果您的应用已通过Beta测试,但尚未发布,则可以使用应用评论链接,但该应用不会留下评论。
iTunes Connect
My Apps
App Icon
您感兴趣的App Store
页面上App Information
部分(它将自动带您到那里)View on App Store
。单击它,它将打开一个空白页。复制页面顶部网址栏中的内容,这就是您的应用评论链接。该应用程序上线后即可上线。