StoreKit API(iOS 10.3 及更高版本)
从 iOS 10.3 开始,StoreKit API 提供了一种无需离开您的应用即可在 App Store 上请求评论的方法。当被调用时,系统可以向用户呈现请求审查的警报。用户可以直接在警报内提供星级评级,继续撰写评论或关闭警报。StoreKit 几乎可以为您处理一切。要提交审核请求,请在您的应用中适当的地方进行以下调用:
// Objective-C
[SKStoreReviewController requestReview]
// Swift
SKStoreReviewController.requestReview()
根据 Apple 的说明,您不应调用这些来响应直接的用户交互(即点击显示“写评论”的按钮),因为它可能并不总是显示警报。实际上,警报可能每 365 天仅显示 3 次。
重要提示:虽然这看起来相当简单,但您仍然需要编写某种逻辑来分隔提示。例如,仅在 X 次启动、天数或重大事件后才显示提示。
如果你没有做到这一点,只是将评论提示贴在任何地方(viewDidAppear
例如,一个电话),你的用户会相当恼火,因为他们会很快地反复看到它。然后,他们要么留下差评(因为他们很生气),要么整整一年都没有被要求再次审核。
以下是警报外观的示例。有关详细信息,请参阅Apple 的文档。
iRate(iOS 7.0 及更高版本)
如果您的应用程序在 10.3 之前的 iOS 版本上运行,或者您需要更强大地控制向用户请求评分,那么 iRate 是一个很好的解决方案。
对于 iOS 10.3 或更高版本的设备,iRate 使用上述 StoreKit API。对于运行 iOS 7.0 到 10.2 的设备,iRate 使用uialertview和storekit来询问用户评分(或稍后提醒他们)。一切都是可定制的,从取消按钮的标题到它提醒用户的时间间隔。
默认情况下,iRate 会在满足某些要求时自动打开(例如应用启动 X 次,用户通过 X 关卡),但您也可以使用多种方法和您自己的逻辑(借助 iRate 方法)手动显示 iRate 弹出窗口。
设置
要安装,只需将头文件、实现文件和.bundle
(用于本地化)拖到您的项目中。
- 在 AppDelegate 中导入标头:
#import "iRate.h"
- 将StoreKit框架添加到您的项目中 - Apple 文档中有关 StoreKit 的更多信息
在您的application: didFinishLaunchingWithOptions:
方法中,设置以下内容:
// Configure iRate
[iRate sharedInstance].daysUntilPrompt = 5;
[iRate sharedInstance].usesUntilPrompt = 15;
特性
下面的属性可用于测试目的。在测试期间将其设置为YES
以确保对话框正确显示。设置为YES
它将在启动时立即出现,而忽略其他显示设置。将此设置NO
为您的应用程序的发布版本。
[iRate sharedInstance].previewMode = NO;
该appStoreID
属性允许您设置应用程序的 ID。仅当您的 Mac 和 iOS 应用程序具有相同的 Bundle Identifier 时,才需要这样做。此处设置的 App ID 还必须与 Xcode 和 iTunes Connect 中设置的 Bundle ID 匹配:
[iRate sharedInstance].appStoreID = 555555555;
更多详细信息可在 iRate GitHub 页面上找到。