如何使用 swift 为费率按钮添加 link?
How can I add a link for a rate button with swift?
首先我不知道在提交我的应用程序之前如何获得link,link是针对每个国家的应用程序商店还是通用的?
我也不知道这样做的方法是否只是把 link 放在那里,比如:
@IBAction func rate(sender: AnyObject) {
UIApplication.sharedApplication().openURL(NSURL(string : "webLinkHere")!)
}
或者我应该使用其他方法来做到这一点?
谢谢
转到您的 itunesconnect 帐户 -> 我的应用程序 -> 单击“+”按钮 -> 新建 iOS 应用程序 -> 填写需要的详细信息 -> 填写所有详细信息后转到你的应用程序 -> 单击更多按钮-> 在 AppStore 上查看 -> 它会将您重定向到您的应用程序 URL 这将是通用的并且在您的应用程序上线后将相同。
试试这个,通过您的 App ID
在您的方法中更改 appId
Swift 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)
}
}
}
Swift3\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这是你进入你的app的Itune页面时的id
示例:
https://itunes.apple.com/fr/app/hipster-moustache/id959379869?mt=8
如何获取ID:
- iTunesconnect 帐户
- 我的应用程序
- 点击“+”按钮
- 新iOS应用程序
- 填写需要的详细信息
- 填写所有详细信息后转到您的应用程序
- 点击更多按钮
- 在 AppStore 上查看
- 它将把你重定向到你的应用程序URL这将是通用的
- 看HttpURL
您可以使用以下函数并将 APP_ID 替换为您的函数。调用此函数将在应用程序商店 link 中打开应用程序,用户将看到评论页面,他可以在其中轻松点击并撰写评论。
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)")!);
}
这对我来说效果最好。
将用户直接引导至应用程序的 'Write A Review' 作曲家。
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")
}
警告:如果您运行在模拟器上运行您的应用程序
UIApplication.sharedApplication().openURL(NSURL(string : "url")!)
将无法运行,因为模拟器中没有应用商店。为了测试此功能,您必须 运行 您的应用程序在设备上。
Swift 3
func rateApp(){
UIApplication.shared.open(URL(string : "itms-apps://itunes.apple.com/app/id959379869")!, options: [:]) { (done) in
// Handle results
}}
id959379869 这是您进入应用的 iTunes 页面时的 ID
现在 iOS 10.3+
SKStoreReviewController 允许用户通过对话框直接在应用程序内对应用程序进行评分。唯一的缺点是只能要求StoreKit显示对话框,但不能确定是否会显示。
import StoreKit
func requestToRate() {
SKStoreReviewController.requestReview()
}
Swift 4
let url = URL(string: "itms-apps:itunes.apple.com/us/app/apple-store/id\(YOURAPPID)?mt=8&action=write-review")!
UIApplication.shared.openURL(url)
对于 iOS 10.3+,您可以使用带简单对话框的 SKStoreReviewController,并在警报样式中选择评级 window。要使用它,您应该导入 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 window,因此请在设备上尝试它,它会起作用。这种方式涵盖所有 iOS 版本,使用所有能力。而你申请地址中的路径部分“/us/app”表示你的App Store本地化,例如"us"表示美国。您可以在任何 browser.To 获取 link 的 App Store 中打开应用程序,轻松在地址字符串中找到您的应用程序 ID,只需在浏览器中复制地址即可。将 "https://" 更改为 "itms-apps://" 可让您在 App Store 应用程序中打开应用程序,而 "https" 在 Safari 中打开网页
Swift 5.1: 以下函数将您的用户直接发送到任何商店的评论部分,而不仅仅是美国商店:
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")
重要提示:这在模拟器上不起作用!在真实设备上进行测试。
这 link 在 App Store 中打开您的应用程序页面,然后显示 撰写评论 sheet .
itms-apps://itunes.apple.com/app/id[APP_ID]?action=write-review
You can find the APP_ID
in the App Store Connect under the details of your app as Apple ID.
如果您想直接撰写评论而不只是打开应用页面:
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)
}
}
}
以上所有答案都不是最佳做法,它们可能会影响您的应用商店评级。为了获得最佳实践,请使用以下代码。
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)
}
首先我不知道在提交我的应用程序之前如何获得link,link是针对每个国家的应用程序商店还是通用的?
我也不知道这样做的方法是否只是把 link 放在那里,比如:
@IBAction func rate(sender: AnyObject) {
UIApplication.sharedApplication().openURL(NSURL(string : "webLinkHere")!)
}
或者我应该使用其他方法来做到这一点?
谢谢
转到您的 itunesconnect 帐户 -> 我的应用程序 -> 单击“+”按钮 -> 新建 iOS 应用程序 -> 填写需要的详细信息 -> 填写所有详细信息后转到你的应用程序 -> 单击更多按钮-> 在 AppStore 上查看 -> 它会将您重定向到您的应用程序 URL 这将是通用的并且在您的应用程序上线后将相同。
试试这个,通过您的 App ID
在您的方法中更改 appIdSwift 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)
}
}
}
Swift3\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这是你进入你的app的Itune页面时的id
示例: https://itunes.apple.com/fr/app/hipster-moustache/id959379869?mt=8
如何获取ID:
- iTunesconnect 帐户
- 我的应用程序
- 点击“+”按钮
- 新iOS应用程序
- 填写需要的详细信息
- 填写所有详细信息后转到您的应用程序
- 点击更多按钮
- 在 AppStore 上查看
- 它将把你重定向到你的应用程序URL这将是通用的
- 看HttpURL
您可以使用以下函数并将 APP_ID 替换为您的函数。调用此函数将在应用程序商店 link 中打开应用程序,用户将看到评论页面,他可以在其中轻松点击并撰写评论。
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)")!);
}
这对我来说效果最好。 将用户直接引导至应用程序的 'Write A Review' 作曲家。
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")
}
警告:如果您运行在模拟器上运行您的应用程序
UIApplication.sharedApplication().openURL(NSURL(string : "url")!)
将无法运行,因为模拟器中没有应用商店。为了测试此功能,您必须 运行 您的应用程序在设备上。
Swift 3
func rateApp(){
UIApplication.shared.open(URL(string : "itms-apps://itunes.apple.com/app/id959379869")!, options: [:]) { (done) in
// Handle results
}}
id959379869 这是您进入应用的 iTunes 页面时的 ID
现在 iOS 10.3+
SKStoreReviewController 允许用户通过对话框直接在应用程序内对应用程序进行评分。唯一的缺点是只能要求StoreKit显示对话框,但不能确定是否会显示。
import StoreKit
func requestToRate() {
SKStoreReviewController.requestReview()
}
Swift 4
let url = URL(string: "itms-apps:itunes.apple.com/us/app/apple-store/id\(YOURAPPID)?mt=8&action=write-review")!
UIApplication.shared.openURL(url)
对于 iOS 10.3+,您可以使用带简单对话框的 SKStoreReviewController,并在警报样式中选择评级 window。要使用它,您应该导入 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 window,因此请在设备上尝试它,它会起作用。这种方式涵盖所有 iOS 版本,使用所有能力。而你申请地址中的路径部分“/us/app”表示你的App Store本地化,例如"us"表示美国。您可以在任何 browser.To 获取 link 的 App Store 中打开应用程序,轻松在地址字符串中找到您的应用程序 ID,只需在浏览器中复制地址即可。将 "https://" 更改为 "itms-apps://" 可让您在 App Store 应用程序中打开应用程序,而 "https" 在 Safari 中打开网页
Swift 5.1: 以下函数将您的用户直接发送到任何商店的评论部分,而不仅仅是美国商店:
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")
重要提示:这在模拟器上不起作用!在真实设备上进行测试。
这 link 在 App Store 中打开您的应用程序页面,然后显示 撰写评论 sheet .
itms-apps://itunes.apple.com/app/id[APP_ID]?action=write-review
You can find the
APP_ID
in the App Store Connect under the details of your app as Apple ID.
如果您想直接撰写评论而不只是打开应用页面:
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)
}
}
}
以上所有答案都不是最佳做法,它们可能会影响您的应用商店评级。为了获得最佳实践,请使用以下代码。
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)
}