在App中设置评级(Swift 3,iOS 10.3)

时间:2017-03-29 13:37:57

标签: ios swift xcode

我的应用中有一个菜单按钮。如果用户单击此按钮,则会看到UIAlertView,其中包含应用程序链接到App Store。

以下是代码:

@IBAction func navButton(_ sender: AnyObject) {

let alertController = UIAlertController(title: "Menu", message: "Thanks for using our app!", preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "Rate Us on the App Store", style: .default, handler: { (action: UIAlertAction) in
print("Send user to the App Store App Page")

let url  = URL(string: "itms-apps://itunes.apple.com/app/id")
     if UIApplication.shared.canOpenURL(url!) == true  {
     UIApplication.shared.openURL(url!)
}  
}))

我知道在iOS 10.3中有机会在应用程序中设置评级。我应该更改什么,以便当用户点击UIAlertView中的链接时,他可以在应用程序中设置评级?

我在Apple Developer网站(https://developer.apple.com/reference/storekit/skstorereviewcontroller)上找到了一些信息,但我不知道如何在我的应用中执行此操作。

2 个答案:

答案 0 :(得分:6)

这是基于查看文档的一个类功能。

SKStore​Review​Controller.requestReview()

它还声明您不应该根据用户按下按钮或任何其他类型的操作来调用此函数,因为不能保证调用它。如果您表明他们将要显示审阅模式,然后什么都没有出现,那将是一个糟糕的用户体验。

如果你在你的应用程序中使用这个新选项,那么最好的选择就是将它放在一个不会中断用户正在执行的任何重要操作并让框架完成工作的地方。

您可以使用用户不知道的标准来选择何时调用该功能,即启动应用x次数,连续使用x天等等。

编辑:替代

如果您想要更好地控制请求评论的功能,可以继续使用旧方法并将以下内容附加到您的商店网址,以便将其直接带到评论页面。

action=write-review

guard let url = URL(string: "appstoreURLString&action=write-review") else { return }
UIApplication.shared.open(url, options: [:], completionHandler: nil)

答案 1 :(得分:0)

请勿在菜单或按钮操作中使用SKStore​Review​Controller.requestReview()。在365天的时间内,该提示最多只会向用户显示3次。这不是您想要的,因为如果用户第四次点击该按钮,则会发生提示,将不会有任何反馈。相反,您应该做的就是将用户链接到@ JustinM提到的App Store。请查看apples documentation了解更多信息。 Apple还显示了一些他们希望您如何要求评论的示例代码。