Latest Version Swift Platforms

Swift Package Manager Cocoapods Cathage Manually

CodeCoverage License Contribution First Timers Friendly

Size Files

ReviewPrompter

ReviewPrompter 是一个用 Swift 编写的 iOS 应用程序的开源库,它可以智能地提示用户进行应用评价。它跟踪应用程序中特定事件的发生,并在满足指定条件时请求显示评价提示。ReviewPrompter 通过实施每个提示之间的最小时间间隔来确保不会过于频繁地提示用户。

依赖项

ReviewPrompterEventTracker 的一个子类,因此依赖于 EventTracker 库。

特性

🧪 测试

该库基本上经过了全面测试,代码覆盖率达 98.5%

💻 安装

Swift Package Manager

要使用 Swift Package Manager 将 ReviewPrompter 添加到你的项目中,请在你的 Package.swift 文件中添加以下依赖项

dependencies: [
    .package(url: "https://github.com/ChristianFox/ReviewPrompter.git", from: "1.0.0")
]

不要忘记将 ReviewPrompter 添加到你的目标依赖项中

targets: [
    .target(
        name: "YourTarget",
        dependencies: ["ReviewPrompter"]),
]

🛠️ 用法

ReviewPrompter

初始化一个实例

let reviewPrompter = ReviewPrompter(minimumPromptInterval: 60 * 60 * 24 * 7) // 1 week

增加事件计数,并在满足条件时请求显示评价提示。回调函数用于通知调用者是否已请求评价提示。

do {
    try reviewPrompter.increaseEventCountWithReviewPrompt(forIdentifier: "event1") { didRequestReview in
        print("Review prompt requested: \(didRequestReview)")
    }
} catch {
    print("Error: \(error)")
}

手动触发评价提示

let didRequest = reviewPrompter.requestReviewPrompt()
print("Review prompt requested: \(didRequest)")

如果需要,可以使用 deleteHistoryOfReviewPromptDates() 方法删除评价提示日期的历史记录

reviewPrompter.deleteHistoryOfReviewPromptDates()

继承自 EventTracker

开始跟踪事件

reviewPrompter.trackEvent(forIdentifier: "event1", withCondition: 3)

停止跟踪事件

reviewPrompter.stopTrackingEvent(forIdentifier: "event1")

更改事件的条件

do {
    try reviewPrompter.changeCondition(5, forIdentifier: "event1")
} catch {
    print("Error updating event condition: \(error)")
}

增加事件计数

do {
    try reviewPrompter.increaseEventCount(forIdentifier: "event1")
} catch {
    print("Error increasing event count: \(error)")
}

重置事件计数

do {
    try reviewPrompter.resetEventCount(forIdentifier: "event1")
} catch {
    print("Error resetting event count: \(error)")
}

检查事件的条件是否已满足

if reviewPrompter.hasEventMetCondition(forIdentifier: "event1") {
    print("Event met condition!")
}

检查事件是否正在被跟踪

if reviewPrompter.isTrackingEvent(forIdentifier: "event1") {
    print("Event is being tracked!")
}

检查事件发生的次数

let eventCount = reviewPrompter.eventCount(forIdentifier: "event1")
print("Event count: \(eventCount)")

检查事件的当前条件

let eventCondition = reviewPrompter.condition(forIdentifier: "event1")
print("Event condition: \(eventCondition)")

🐕‍🦺 支持

打开一个 issue 以获得支持。

👷‍♂️ 贡献

欢迎提交 Pull Request。我欢迎所有技能水平的开发者帮助改进该库,修复错误或添加新功能。

对于重大更改,请先打开一个 issue 讨论你想要更改的内容。

在提交 Pull Request 之前,请确保你的代码符合现有的代码风格和约定,并且所有测试都通过。此外,如果你要添加新功能,请确保包含单元测试来验证行为。

如果你有任何疑问或需要帮助,请随时打开一个 issue,我会尽力帮助你。

🪪 许可证

ReviewPrompter 在 MIT 许可证下发布。有关更多信息,请参见 LICENSE 文件。

Buy Me A Coffee