首先,在提交我的应用程序之前,我不知道如何获取链接,并且该链接是针对每个国家/地区的应用商店还是通用的?
我也不知道是否只是通过将链接放在那里就可以做到这一点:
@IBAction func rate(sender: AnyObject) {
UIApplication.sharedApplication().openURL(NSURL(string : "webLinkHere")!)
}
还是我应该使用另一种方式来做到这一点?
谢谢
首先,在提交我的应用程序之前,我不知道如何获取链接,并且该链接是针对每个国家/地区的应用商店还是通用的?
我也不知道是否只是通过将链接放在那里就可以做到这一点:
@IBAction func rate(sender: AnyObject) {
UIApplication.sharedApplication().openURL(NSURL(string : "webLinkHere")!)
}
还是我应该使用另一种方式来做到这一点?
谢谢
Answers:
试试看,通过您的应用程序ID更改方法中的appId
迅捷5
import StoreKit
func rateApp() {
if #available(iOS 10.3, *) {
SKStoreReviewController.requestReview()
} else if let url = URL(string: "itms-apps://itunes.apple.com/app/" + "appId") {
if #available(iOS 10, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}
}
迅捷3 \ 4
func rateApp() {
guard let url = URL(string: "itms-apps://itunes.apple.com/app/" + "appId") else {
return
}
if #available(iOS 10, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}
id959379869 这是您进入应用程序的Itune页面时的ID
范例: https://itunes.apple.com/fr/app/hipster-moustache/ id959379869?mt = 8
如何获得ID:
这对我来说是最好的。将用户直接定向到应用程序的“写评论”作曲家。
Swift 3.1(支持iOS10及更低版本)
推出新品 action=write-review
let appID = "959379869"
if let checkURL = URL(string: "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=\(appID)&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8") {
open(url: checkURL)
} else {
print("invalid url")
}
...
func open(url: URL) {
if #available(iOS 10, *) {
UIApplication.shared.open(url, options: [:], completionHandler: { (success) in
print("Open \(url): \(success)")
})
} else if UIApplication.shared.openURL(url) {
print("Open \(url)")
}
}
经过测试并在Swift 2.2上工作
let appID = "959379869" // Your AppID
if let checkURL = NSURL(string: "http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=\(appID)&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8") {
if UIApplication.sharedApplication().openURL(checkURL) {
print("url successfully opened")
}
} else {
print("invalid url")
}
reviewString
没有使用过。还有\(success)
一个已使用但未在else语句中声明的变量
现在在iOS 10.3+之后
SKStoreReviewController允许用户通过对话框直接从应用程序内部为应用程序评分。唯一的不足是您只能请求StoreKit显示对话框,但不能确定是否会显示。
import StoreKit
func requestToRate() {
SKStoreReviewController.requestReview()
}
您可以使用以下功能,并将APP_ID替换为您的功能。调用此功能将在应用商店链接中打开该应用,用户将看到“评论”页面,在该页面中,他可以轻松单击并撰写评论。
func rateApp(){
UIApplication.sharedApplication().openURL(NSURL(string : "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=\(APP_ID)&onlyLatestVersion=true&pageNumber=0&sortOrdering=1)")!);
}
Your request produced an error. [newNullResponse]
对于iOS 10.3+,您可以将SKStoreReviewController与简单对话框一起使用,并在警报样式窗口中选择等级。要使用它,您应该导入StoreKit库。因此,对应用程序进行内部评级的通用方法是这样的:
import StoreKit
func rateApp(){
if #available(iOS 10.3, *) {
SKStoreReviewController.requestReview()
} else {
guard let url = URL(string: "itms-apps://itunes.apple.com/ru/app/cosmeteria/id1270174484") else {
return
}
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}
}
而且,当您尝试在模拟器中启动它时,您将不会看到“ App Store”窗口,因此请在设备上尝试它,然后它将起作用。这种方式使用所有功能涵盖所有iOS版本。应用地址“ / us / app”中路径的一部分表示您的App Store本地化,例如“ us”表示美国。只需在任何浏览器的App Store中打开app,即可在地址字符串中轻松找到您的app ID。要获取链接,只需在浏览器中复制地址。将“ https://”更改为“ itms-apps://”可让您在App Store应用程序中打开应用程序,而“ https”可在Safari中打开网页
requestReview
不能保证每次都在真实设备中显示。
Swift 5.1:以下功能可将您的用户直接带到ANY商店的评论区域,而不仅仅是美国商店:
func rateApp(id : String) {
guard let url = URL(string : "itms-apps://itunes.apple.com/app/id\(id)?mt=8&action=write-review") else { return }
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}
用法:
rateApp(id: "1287000522")
重要说明:这在模拟器上不起作用!在真实设备上进行测试。
迅捷3
func rateApp(){
UIApplication.shared.open(URL(string : "itms-apps://itunes.apple.com/app/id959379869")!, options: [:]) { (done) in
// Handle results
}}
id959379869这是当您进入应用程序的iTunes页面时的ID
转到您的itunesconnect帐户->我的应用程序->单击“ +”按钮->新的iOS应用程序->填写要求的详细信息->填写所有详细信息后,转到您的应用程序->单击更多按钮->在AppStore上查看->将您重定向到您的应用程序URL,这将是通用的,并且在您的应用程序发布后将保持不变。
以上所有答案都不是最佳做法,它们可能会影响您的应用商店评级。为了获得最佳实践,请使用以下代码。
func ReviewAppController() {
let alert = UIAlertController(title: "Feedback", message: "Are you enjoying our App?", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Dismis", style: .cancel, handler: nil))
alert.addAction(UIAlertAction(title: "Yes, i Love it!", style: .default, handler: {_ in
SKStoreReviewController.requestReview()
}))
alert.addAction(UIAlertAction(title: "No, this sucks!", style: .default, handler: {_ in
//Collect feedback
}))
present(alert, animated: true)
}
如果您想直接撰写评论而不只是打开应用程序页面:
if let url = URL(string: "https://itunes.apple.com/in/app/\(yourappname)/id\(yourAppleAppId)?ls=1&mt=8&action=write-review") {
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
// Earlier versions
if UIApplication.shared.canOpenURL(url as URL) {
UIApplication.shared.openURL(url as URL)
}
}
}