我想在我的应用中添加“评价/评论此应用”功能。
有没有办法直接链接到他们审核应用的应用商店中的屏幕?因此,客户无需点击主应用程序链接。感谢。
编辑:由于缺乏回应而开始对此表示赏金。只是为了确保它非常清晰:我知道我可以链接到商店中我的应用程序页面,并要求用户从那里点击“查看此应用程序”屏幕。问题是,是否可以直接链接到“查看此应用程序”屏幕,这样他们就不必点击任何内容。答案 0 :(得分:337)
For versions lower than iOS 7 use the old one:
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
This works on my end (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
答案 1 :(得分:43)
<强>更新强>
Swift 4.0,Xcode 9.1
在Real Device iOS 11.x上测试(保证工作)
let appID = "Your App ID on App Store"
let urlStr = "itms-apps://itunes.apple.com/app/id\(appID)" // (Option 1) Open App Page
let urlStr = "itms-apps://itunes.apple.com/app/viewContentsUserReviews?id=\(appID)" // (Option 2) Open App Review Tab
if let url = URL(string: urlStr), UIApplication.shared.canOpenURL(url) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}
从iOS 10中弃用openURL(_ :)。
答案 2 :(得分:38)
上面写的所有内容都是正确的。只需插入应用程序并将{您的应用程序ID}更改为实际应用程序ID的示例,从iTunesconnect获取以显示“审阅”页面。请注意,正如上面评论的那样,它不能在模拟器上工作 - 只是设备 - 由于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]];
答案 3 :(得分:32)
编辑: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应用中的应用页面 NOT 不再有“评论”标签。相反,评论现在位于说明和屏幕截图的正下方。当然,仍然可以直接到达这个部分(例如使用某种锚),但似乎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)
因此,您仍然可以让用户访问您的应用商店页面,但不能直接访问评论部分。用户现在必须手动向下滚动到审阅部分以留下他们的反馈。
毫无疑问,这为用户体验带来了巨大而可怕的好处,并将帮助开发人员吸引用户留下高质量的评论而不会让他们烦恼#34;干得好的Apple ......
答案 4 :(得分:25)
以上所有方法都是正确的,但现在使用 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]];
}
答案 5 :(得分:12)
func jumpToAppStore(appId: String) {
let url = "itms-apps://itunes.apple.com/app/id\(appId)"
UIApplication.sharedApplication().openURL(NSURL(string: url)!)
}
答案 6 :(得分:12)
短App Store网址无法在新的iOS 11 App Store中正确打开“撰写评论”界面。例如,这不工作:
https://itunes.apple.com/app/id333903271?mt=8&action=write-review
解决方法是在网址中包含两个字母的国家/地区代码和应用名称,例如:
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
您可以从此处获取应用的完整网址:https://linkmaker.itunes.apple.com/
这成功打开了iOS 11 App Store中的“编写评论”界面。
修改:@Theo在下面提及,国家/地区代码无需本地化,如果应用名称发生变化,则无需更新网址中的应用名称。
希望Apple能够尽快解决这个问题。见rdar://34498138
答案 7 :(得分:11)
之前的所有链接都不再直接指向“评论”标签,
此链接将直接指向“评论标签”:
https://itunes.apple.com/app/viewContentsUserReviews?id=AppID
或
ITMS的应用程式://itunes.apple.com/app/viewContentsUserReviews ID =的AppID
?答案 8 :(得分:9)
在iOS7中,将应用程序切换到App Store以进行评分和审核的网址已更改:
itms-apps://itunes.apple.com/app/idAPP_ID
APP_ID需要用您的应用程序ID替换。
对于iOS 6及更早版本,之前答案中的网址工作正常。
来源:Appirater
享受编码.. !!
答案 9 :(得分:8)
使用此网址对我来说是完美的解决方案。它将用户直接带到Write a Review section
。 @Joseph Duffy的积分。 必须尝试
网址= 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 UIApplication.shared.canOpenURL(URL(string: openAppStoreForRating)!) {
UIApplication.shared.openURL(URL(string: openAppStoreForRating)!)
} else {
showAlert(title: "Cannot open AppStore",message: "Please select our app from the AppStore and write a review for us. Thanks!!")
}
此处showAlert是UIAlertController
的自定义函数。
答案 10 :(得分:7)
从iOS 10.3开始,您可以将action=write-review
查询项附加到https://itunes.apple.com/...
和https://appsto.re/...
网址。在iOS 10.3及更高版本上,它将自动打开Write a review
,而在较低的iOS版本中,它将回退到应用程序的App Store页面。
iOS 11更新:
使用Apple的链接制作工具:linkmaker.itunes.apple.com
并附加&action=write-review
,似乎是最安全的方式。
答案 11 :(得分:4)
在 iOS 11 + (新的应用商店)中有一种新方法可以做到这一点。你可以打开&#34;撰写评论&#34;直接对话。
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网址获取)。答案 12 :(得分:4)
NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
答案 13 :(得分:4)
Swift 2版本实际上会带您进入iOS 8和iOS 9上应用的评论页面:
let appId = "YOUR_APP_ID"
let url = "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=\(appId)"
UIApplication.sharedApplication().openURL(NSURL(string: url)!)
答案 14 :(得分:4)
iOS 4放弃了“删除率”功能。
目前,对应用程序进行评级的唯一方法是通过iTunes。
编辑:可以通过iTunes Link Maker为您的应用程序生成链接。 This site has a tutorial.
答案 15 :(得分:3)
我在iOS 10中遇到同样的问题,我可以打开iTunes费率部分,呼叫:
基本上它将最后一个url var更改为“mt = 7”
干杯
答案 16 :(得分:3)
通过SKStoreProductViewController可以轻松链接到应用商店的应用。但是我有点挣扎,所以我决定在这里展示整个过程和一些必要的代码。此技术还可确保始终使用正确的商店(对于本地化应用程序非常重要)。
使用您的任何应用在您的应用中显示应用商店的任何应用的产品屏幕ViewControllers按照以下步骤操作:
但最重要的是:这 - 由于某种原因 - 在模拟器中不起作用 - 您必须在具有互联网连接的真实设备上构建和安装。
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)
}
}
答案 17 :(得分:3)
对于&gt; = iOS8 :(简化@ EliBud&#39;答案)。
#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];
}
}
答案 18 :(得分:2)
引自Apple Developer Documentation
此外,您可以继续在其中包含持久链接 您的应用的设置或配置屏幕深层链接到您的 App Store产品页面。自动打开用户的页面 可以在App Store中撰写评论,附加查询参数 action =对您的商品网址进行写评论。
所以URL将如下:
ITMS的应用程式://itunes.apple.com/app/id的 YOUR_APP_ID 强>行动=写入评论
答案 19 :(得分:2)
let rateUrl = "itms-apps://itunes.apple.com/app/idYOUR_APP_ID?action=write-review"
if(UIApplication.shared.canOpenURL(rateUrl)) {
UIApplication.shared.openURL(rateUrl)
}
答案 20 :(得分:2)
SWIFT 3
v
答案 21 :(得分:2)
接受的答案未能加载&#34;评论&#34;标签。我找到了以下方法加载&#34;评论&#34;标签没有&#34;细节&#34;标签
[[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。
答案 22 :(得分:2)
以下是我在我的应用中使用的代码;
-(void)rateApp {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"itms-apps://itunes.apple.com/app/" stringByAppendingString: @"id547101139"]]];
}
答案 23 :(得分:1)
这在iOS 9-11上正常工作。
尚未在较早版本上进行测试。
[NSURL URLWithString:@"https://itunes.apple.com/app/idXXXXXXXXXX?action=write-review"];
答案 24 :(得分:1)
您可以在您的网址启动器功能中使用此链接
答案 25 :(得分:0)
如果您的应用已通过Beta测试,但尚未发布,则可以使用应用评论链接,但该应用不会留下评论。
iTunes Connect
My Apps
App Icon
您感兴趣的App Store
页面上App Information
部分(它会自动将您带到那里)View on App Store
。单击它,它将打开一个空白页。复制页面顶部网址栏中的内容,这就是您的应用评论链接。该应用程序上线后即可上线。答案 26 :(得分:0)
Swift 5在iOS14中测试
打开查看窗口并选择5星
private func openReviewInAppStore() {
let rateUrl = "itms-apps://itunes.apple.com/app/idYOURAPPID?action=write-review"
if UIApplication.shared.canOpenURL(URL.init(string: rateUrl)!) {
UIApplication.shared.open(URL.init(string: rateUrl)!, options: [:], completionHandler: nil)
}
}