SwiftlyRater 1.0.1

SwiftlyRater 1.0.1

测试已测试
Lang语言 SwiftSwift
许可 MIT
Released最新发布2017年1月
SwiftSwift 版本3.0
SPM支持 SPM

Gianluca Di Maggio维护。



  • 作者:
  • Gianluca Di maggio

SwiftlyRater

一个简单的、轻量级的用于 iOS 的评论管理器,使用 Swift 3 编写

屏幕截图

ScreenShot

这是什么?

SwiftlyRater 核心是一个 UIAlertController,当满足特定条件时呈现给用户,让他们有机会对你的应用程序进行评分。当事情没有正确运行时,用户倾向于留下负面评论而不是在一切顺利时写正面评论,这并不是什么秘密。SwiftlyRater 旨在实现一些平衡,让你的最忠实和活跃的用户提醒在 AppStore 上通过积极的评论来表示感谢。

易于设置

您只需一行代码即可启动 SwiftlyRater,无需其他配置。

本地化

SwiftlyRater 支持以下四种语言:英文、西班牙语、法语和意大利语,更多语言即将推出!

可配置

SwiftlyRater 提供了一小部分可定制的属性,您可以根据需求为您的应用程序获得所需的行为。

简单轻量

SwiftlyRater 通过利用 Swift 3 提供的功能来保持简单,同时又简洁。

要求

  • iOS 10.0+

使用方法

设置

要启动 SwiftlyRater,您只需在 AppDelegate 的 didFinishLaunchingWithOptions() 中添加一行代码,传递与您的应用程序关联的 App Store ID

SwiftlyRater.sharedInstance.appId = "Your App ID"

SwiftlyRater 将使用其默认配置和标准来决定何时向用户呈现评论提示。

自定义 UI

applicationName主要用于评测试弹窗的标题,默认情况下从您的应用的info.plist动态检索。它可以更改为特定的名称,如下所示:

SwiftlyRater.sharedInstance.applicationName = "Your Custom Name"

reviewTitle是评测试弹窗的标题,默认设置为打分。这也可以自定义。

SwiftlyRater.sharedInstance.reviewTitle = "Custom Title"

reviewMessage是评测试弹窗的消息,默认设置为喜欢这个应用吗?请花点时间在AppStore上留下评价!您的支持非常感谢!。要更改它

SwiftlyRater.sharedInstance.reviewMessage = "Custom Message"

neverRemindButtonTitle决定了用于“永不提醒”按钮的文本。其默认值是不用了

SwiftlyRater.sharedInstance.neverRemindButtonTitle = "Never Remind Title"

rateButtonTitle决定了用于“评价”按钮的文本。其默认值是立即评}

SwiftlyRater.sharedInstance.rateButtonTitle = "Rate Title"

remindButtonTitle决定了用于“提醒”按钮的文本。其默认值是稍后吧

SwiftlyRater.sharedInstance.remindButtonTitle = "Remind Title"

自定义行为

usesUntilPrompt属性控制在显示提示之前,相同版本的您的应用需要使用多少次。一次“使用”对应于启动应用,而将其置为前台不会增加使用计数器。默认值是10

SwiftlyRater.sharedInstance.usesUntilPrompt = Int

daysUntilPrompt属性控制在显示弹窗之前,从安装或更新应用开始需要过去多少天。默认值是5

SwiftlyRater.sharedInstance.daysUntilPrompt = Int

eventsUntilPrompt属性确定弹出窗口显示之前需要发生多少“事件”。默认值是10

SwiftlyRater.sharedInstance.eventsUntilPrompt = Int

此属性可用于捕获您应用中发生的重要事件,这样只有最忠诚的用户才会看到评测试弹窗。要通知SwiftlyRater已发生重要事件,需要调用以下函数

SwiftlyRater.sharedInstance.userDidPerformEvent(showPrompt: Bool)

用户可以选择在评测试弹窗中选择“稍后吧”。daysBeforeReminding属性决定了需要过去多少天才再次向这些用户显示弹窗。默认值是2

SwiftlyRater.sharedInstance.daysBeforeReminding = Int

shouldPromptIfRated控制是否应向已经评测试过应用的用户显示评测试弹窗。当发布小型更新时,可以将其设置为false,这样用户就不会再次被要求为与上一个版本几乎相同的版本留评。默认值是true

SwiftlyRater.sharedInstance.shouldPromptIfRated = Bool

shouldPrompAtLaunch控制是否在应用启动时立即显示评测试弹窗。默认值是true

SwiftlyRater.sharedInstance.shouldPrompAtLaunch = Bool

当将此属性设置为false时,评测试弹窗将不会显示 - 即使满足某些条件 - 除非调用以下函数

SwiftlyRater.sharedInstance.showPromptIfNeeded()

showNeverRemindButton控制评测试弹窗是否应包括第三个按钮,使用户提供不再次显示该弹出窗口的选项。默认值是false

SwiftlyRater.sharedInstance.shouldPrompAtLaunch = Bool

useCustomLocalizationFile确定使用哪个捆绑包来本地化评测试弹窗字符串。默认情况下,该值设置为false,这意味着SwiftlyRater将使用自己的捆绑包进行翻译。当将其设置为true时,您需要在应用捆绑包中包含一个名为SRLocalizable.strings的文件,其中包含必要的翻译字符串。

SwiftlyRater.sharedInstance.useCustomLocalizationFile = Bool
调试模式

默认情况下,debug属性可用于测试目的,启用日志记录并在每次启动应用时显示评测试弹窗。设置为false

SwiftlyRater.sharedInstance.debug = Bool

委托

SwiftlyRater使用委托来传达特定事件已发生

func swiftlyRaterDidShowPrompt() -> Void
func swiftlyRaterDidTapRate() -> Void
func swiftlyRaterDidTapDecline() -> Void
func swiftlyRaterDidTapRemind() -> Void

接下来是什么?

这只是围绕一些想法的几个概念,欢迎贡献!

  • 使用自定义UI而不是Apple UIAlertController的能力
  • 增加更多标准/触发条件到审核弹窗逻辑
  • 改进本地化
  • 单元测试覆盖率

反馈

最终目标是让SwiftlyRater成为最好的审核管理器,所以请继续提供反馈——无论是通过电子邮件、错误报告还是拉取请求!

致谢

  • Appirater给了我灵感,让我在SwiftlyRater上有了坚实的基础。
  • Andyy Hope,感谢您关于UserDefaults和协议的启发性文章。
  • Sauvik Dolui,感谢您关于Reachability的优秀教程。

许可

SwiftlyRater在MIT LICENSE许可下发布。