GetRated是一个非常实用的类,可以帮助您推广您的iPhone和iPad应用程序。GetRated使用SKStoreReviewController(从iOS 10.3开始可用)来在用户使用应用程序几天后提示他们为其评分。然后,GetRated将通过定期重试来管理进一步的评分尝试,符合App Store的建议。这种方法是针对目标用户(他们很可能喜欢这个应用程序,否则不会继续使用它!)获取正面评分的最好方法之一。
GetRated将确保在使用提示之前满足一些可配置的要求。这些包括daysUntilFirstPrompt、daysUntilFuturePrompts、minimumDaysUntilPromptAfterVersionUpdate、usesUntilPrompt和eventsUntilPrompt。
默认情况下,GetRated将均匀地在一年内分配3个请求来提示,以充分利用Apple设定的每年最多3次提示的限制。
GetRated是在Nick Lockwood的iRate的启发下创建的,部分基于此。
注意:“支持”表示库已经与这个版本进行了测试。“兼容”表示库应该在这个操作系统版本上工作(即它不依赖于任何不存在的SDK功能),但是不再对该版本的兼容性进行测试,并且可能需要调整或错误修复才能正确运行。
要将Getrated安装到您的应用程序中,请将getrated.h和.m文件拖入您的项目。
Getrated可以通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile
pod 'GetRated'
Getrated通常不需要配置,只需启动即可。最好的方式是在AppDelegate的- [application:didFinishLaunchingWithOptions:]
方法中执行。
如果您希望自定义Getrated,最佳方式同样是在AppDelegate的-[application:didFinishLaunchingWithOptions:]
方法中执行。所有配置都应该在调用启动前应用,否则提示请求可能已经发出。
#import <GetRated/getRated.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//configure GetRated
/* _optional_ */
//don't prompt at launch - only set this if you intent to call GetRated to prompt manually
[getRated sharedInstance].promptAtLaunch = NO;
//enable preview mode - *** ONLY SET THIS FOR TESTING ONLY ***
[getRated sharedInstance].previewMode = YES;
/* _required_ */
//start GetRated - should be called AFTER any optional configuration options (above)
[[getRated sharedInstance] start];
return YES;
}
Getrated类有几个属性可以用来修改其行为。这些属性大多容易理解,但以下有文档说明:
@property (nonatomic, assign) float daysUntilFirstPrompt;
这是用户必须安装应用程序后才能被提示评分的天数。时间是自应用程序首次启动起计算的。这是一个浮点值,因此可以用来指定小数天数(例如0.5)。
默认值为10天。
@property (nonatomic, assign) float daysUntilFuturePrompts;
这是在再次请求提示之前必须等待的日期数。时间从上一次提示请求开始计算。这是一个浮点数,所以可以用来指定小数天数(例如0.5)。
默认值是123天。我们允许在12个月期间对SKStoreReviewController
进行三次请求。
@property (nonatomic, assign) float minimumDaysUntilPromptAfterVersionUpdate;
这是用户必须安装最新版本才能收到评分提示的天数。时间从应用程序的最新版本首次启动时开始计算。这是一个浮点数,所以可以用来指定小数天数(例如0.5)。
默认值是5天。这可以避免在提示已到期但用户刚刚更新已安装版本的情况下立即要求评分的情况。
@property (nonatomic, assign) NSUInteger usesUntilPrompt;
这是用户必须启动应用程序的最低次数,才能收到评分提示。这可以避免用户运行应用程序一次,数周后再次启动,然后立即被提示评分的场景。最小使用计数确保只有频繁的用户会被提示。提示将在指定的天数和次使用后出现。
默认值是10次使用。
@property (nonatomic, assign) NSUInteger eventsUntilPrompt;
对于某些应用程序,启动次数不是衡量使用情况的好指标。例如,应用程序可能是一款游戏,用户必须达到特定级别后才能写一篇有见地的评论。在这种情况下,您可以在指定数量的此类事件之后手动记录重要事件,并弹出提示。就像usesUntilPrompt设置一样,提示将在指定天数和事件后出现。然而,一旦达到天数阈值,如果事件阈值或使用阈值任一达到,就会弹出提示。
默认值是10次事件。
@property (nonatomic, assign) BOOL onlyPromptIfLatestVersion;
将此设置为NO,可以在用户不是运行应用程序最新版本的情况下启用评分提示的显示。
默认值是YES,这样可以避免用户因您已经修复的bug等原因留下不良评论。
@property (nonatomic, assign) BOOL promptAtLaunch;
将此设置为NO以禁用应用程序启动或从后台返回时自动出现评分提示。评分标准将继续跟踪,但在这种设置生效期间将不会自动显示提示。您可以使用此选项,如果您希望手动控制评分提示的显示。
默认值是YES。
@property (nonatomic, assign) BOOL verboseLogging;
此选项将导致GetRated向控制台发送有关提示决策过程的详细日志。如果你的应用程序在不应该提示评分的情况下正确提示,这将帮助您找出原因。
默认情况下,详细日志在调试构建上已启用,在发布和部署构建上已禁用。
@property (nonatomic, assign) BOOL previewMode;
如果设置为YES,GetRated将始终在启动时显示评分提示,无论应用程序使用时间有多长或是否为最新版本(除非您已明确禁用了promptAtLaunch
选项)。在测试期间可以使用此选项检查您的配置是否正确,但在最终发布时请禁用它。
默认值是NO。
@property (nonatomic, assign) BOOL promptEnabled;
此选项允许您关闭提示。例如,您可能希望远程管理提示是否启用。
默认值是YES。
如果默认的GetRated行为不符合您的需求,您可以通过使用高级属性和方法来实现。以下属性让您访问内部状态并覆盖它
@property (nonatomic, strong) NSDate *appFirstUsed;
用户首次启动应用程序的日期。用于计算是否满足daysUntilPrompt标准。
@property (nonatomic, strong) NSDate *versionFirstUsed;
用户首次启动当前版本应用程序的日期。用于计算是否满足minimumDaysUntilPromptAfterVersionUpdate标准。
@property (nonatomic, strong) NSDate *lastRequestedRating;
GetRated上一次尝试请求评分的日期(如果有的话)。
@property (nonatomic, assign) NSUInteger usesCount;
该应用被使用的次数(启动次数)。
@property (nonatomic, assign) NSUInteger eventCount;
自应用程序安装以来记录的显著应用程序事件的数量。此值由logEvent方法递增,但也可被直接操作。
除了配置之外,GetRated还具有以下方法
- (BOOL)shouldPromptForRating;
如果满足提示标准则返回YES,如果没有则返回NO。如果您在应用启动时禁用了自动显示,则可以使用此方法来决定何时显示评分提示。
- (void)promptForRating;
如果与应用商店的连接可用,此方法将立即触发评分提示。
- (void)promptIfAllCriteriaMet;
此方法将检查是否满足所有提示条件,且应用商店是否可用;如果可用,则将显示评分提示给用户。
- (void)openRatingsPageOnAppStore;
如果与应用商店连接可用,此方法将跳过用户提示,直接在iPhone应用商店打开应用评分页面。这将导致lastRequestedRating
属性被更新。这可以用于允许在“关于”屏幕或类似位置添加“请到应用商店评分”按钮。
- (void)logEvent:(BOOL)deferPrompt;
此方法可以从您的应用中的任何位置调用(在GetRated配置完成后),并递增GetRated的显著事件计数。当达到预定义的事件数时,将显示评分提示。可选的deferPrompt参数用于确定提示是否立即显示(NO)或者在下次启动时显示(YES)。
标准示例演示了GetRated的基本实现,如果满足所有条件,则在启动时出现提示。
高级示例演示了如果您在应用中的合适位置调用promptIfAllCriteriaMet
,它是如何实现GetRated的。这允许在满足所有条件时在应用中的特定点上显示提示。
注意,这两个示例都启用了previewMode
,因此daysUntilFirstPrompt
、daysUntilFuturePrompts
、minimumDaysUntilPromptAfterVersionUpdate
、usesUntilPrompt
和eventsUntilPrompt
将被忽略。
要运行这两个示例项目之一,请克隆仓库,然后首先从相应的示例目录中运行pod install
。
GetRated在MIT许可下可用。有关更多信息,请参阅LICENSE文件。
请参阅CHANGELOG.md