跳到主要内容

如何在SwiftUI中请求用户对您的应用进行评价

· 阅读需 4 分钟
GoSwiftUI
goswiftui.com

在 iOS 16 中,SwiftUI 具有一种本地方式来请求用户的反馈和评分。

要呈现一个本地提示,请求用户对您的应用进行 App Store 评分和评论,您需要执行两项操作。

  1. 导入StoreKit框架。
  2. 当您希望请求用户对您的应用进行评价时,调用RequestReviewAction
import SwiftUI
import StoreKit

struct ContentView: View {
// 1
@Environment(\.requestReview) var requestReview

var body: some View {
Text("你好,世界!")
.padding()
.onAppear {
// 2
requestReview()
}
}
}
  1. RequestReviewAction是一个操作,将呈现一个提示,要求用户为我们的应用评分。我们可以从StoreKit框架中声明的环境值\.requestReview中获取该操作。
  2. 在获得对这个操作的访问权限后,只需在希望请求用户评价时调用它。

这是 UI 的样子。

请求评价弹出对话框。请求评价弹出对话框。

限制

苹果在用户体验方面非常认真,他们希望控制我们请求用户评价的频率。

因此,即使您明确调用requestReview(),评价弹出窗口也可能不会显示。

这是苹果用来决定是否显示评价窗口的标准。

  1. 如果用户在该设备上尚未对您的应用进行评级或评论,则 StoreKit 在 365 天内最多会显示评级和评论请求三次。
  2. 如果用户在该设备上对您的应用进行了评级或评论,并且自上次评价以来已经过去了 365 天,StoreKit 会显示评级和评论请求。
  3. 即使所有标准都满足,由于苹果的隐藏标准,例如频率,仍有可能不显示提示,因此不要在按钮点击或其他用户操作的响应中调用该方法。

何时请求评级

由于您可以请求评价的次数有限,您应该在有意义的时候调用它。

您可能希望在用户可能会获得评价的时候要求评价。

这方面没有固定的规则,但我可以提供一些示例。

  1. 当用户反复返回您的应用时。这表明用户对您的应用感到满意并认为它有帮助。
  2. 在重要事件之后,例如完成游戏关卡或完成一些任务。

总之,您应该在用户对您的应用感到积极时请求评价。

因此,您的代码可能如下所示。

struct ContentView: View {
@Environment(\.requestReview) var requestReview

var body: some View {
Text("你好,世界!")
.padding()
.onAppear {
requestReviewIfAppropriated()
}
}
@MainActor
private func requestReviewIfAppropriated() {
let numberOfVisits = 10
let numberOfSignificantEvents = 10
if numberOfVisits > 5 || numberOfSignificantEvents > 5 {
requestReview()
}
}
}

实际上,numberOfVisitsnumberOfSignificantEvents应该来自您的数据库,即UserDefaults