SwiftRater

Version License Build Status codebeat badge

SwiftRater 是一个类,您可以将其放入任何 iPhone 应用程序中,以帮助提醒您的用户在 App Store/您的应用程序中评价您的应用程序。

SwiftRater 是使用纯 Swift 编写的。

iOS

SwiftRater1

macOS

SwiftRater1

系统要求

iOS 13.0、macOS 10.15 或更高版本,使用 Swift 编写。

安装

SPM

打开您的项目设置,导航到“Package dependencies”选项卡。放入“https://github.com/takecian/SwiftRater”。

Cocoapods

SwiftRater 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile

pod "SwiftRater"

Carthage

SwiftRater 与 Carthage 兼容。将其添加到您的 Cartfile

github "takecian/SwiftRater"

用法

1.在 AppDelegate.swift 中设置 SwiftRater。设置完成后,调用 SwiftRater.appLaunched()

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        SwiftRater.daysUntilPrompt = 7
        SwiftRater.usesUntilPrompt = 10
        SwiftRater.significantUsesUntilPrompt = 3
        SwiftRater.daysBeforeReminding = 1
        SwiftRater.showLaterButton = true
        SwiftRater.debugMode = true
        SwiftRater.appLaunched()

        return true
    }

如果您正在使用 SwiftUI,请创建继承自 UIApplicationDelegate 的 AppDelegate 类,并在其中配置 SwiftRater。(感谢 @markgravity 的建议)

@main
struct YourApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

class AppDelegate: NSObject, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        SwiftRater.daysUntilPrompt = 7
        SwiftRater.usesUntilPrompt = 10
        SwiftRater.significantUsesUntilPrompt = 3
        SwiftRater.daysBeforeReminding = 1
        SwiftRater.showLaterButton = true
        SwiftRater.debugMode = true
        SwiftRater.appLaunched()
        return true
    }
}
属性 描述
daysUntilPrompt 如果自首次启动应用程序以来已过去 daysUntilPrompt 天,则显示评价请求。
usesUntilPrompt 如果用户启动次数超过 usesUntilPrompt 次,则显示评价请求。
significantUsesUntilPrompt 如果用户执行重要操作的次数超过 significantUsesUntilPrompt 次,则显示评价请求

您可以设置您想要应用的属性。

属性 描述
debugMode 每次都显示评价请求。默认为 false,当您将应用程序提交到 AppStore 时,需要设置为 false
conditionsMetMode 可能的值:.any.all(默认)
将此设置为 .any 允许在满足您的任何一个或多个条件时显示提示。
showLaterButton 在评价请求对话框中显示“稍后”按钮,适用于 iOS 10.2 或更早版本的设备。
daysBeforeReminding 如果用户选择“稍后评价”,则在多少天后显示提醒弹出窗口,适用于 iOS 10.2 或更早版本的设备。

2.在您想要显示评价请求对话框的 ViewController 的 viewDidAppear 中调用 SwiftRater.check()。如果条件满足,SwiftRater 将显示评价请求弹出窗口。

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        SwiftRater.check()
    }

3(可选)。对于 significantUsesUntilPrompt,您需要在应用程序的重要操作中添加 SwiftRater.incrementSignificantUsageCount

func postComment() {
    // do something ..

	SwiftRater.incrementSignificantUsageCount()
}

4(可选)。调用 SwiftRater.rateApp(host:) 以让您的用户直接在 App Store/您的应用程序中评价您的应用程序。

func rateButtonDidClick(sender: UIButton) {
    // do something ..

	SwiftRater.rateApp(host: self)
}

示例

此示例说明仅当应用程序启动 5 次且 7 天后才显示评价请求,如果选择稍后评价,则在 5 天后提醒。

SwiftRater.daysUntilPrompt = 7
SwiftRater.usesUntilPrompt = 5
SwiftRater.daysBeforeReminding = 5
SwiftRater.appLaunched()

如果您希望仅在 5 天后显示请求,并在选择稍后评价后 7 天后提醒,您可以设置以下内容

SwiftRater.daysUntilPrompt = 5
SwiftRater.daysBeforeReminding = 7
SwiftRater.appLaunched()

如果您希望在用户执行 10 次重要操作后,在 5 天或 5 次使用次数过去之前显示请求

SwiftRater.conditionsMetMode = .any
SwiftRater.daysUntilPrompt = 5
SwiftRater.usesUntilPrompt = 5
SwiftRater.significantUsesUntilPrompt = 10

自定义文本

您可以为 iOS 10.2 或更早版本的设备自定义评价请求对话框中的文本。在以下属性中设置文本。

国家代码

如果您的应用程序仅适用于某些国家/地区,请在设置阶段添加国家/地区代码。

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        SwiftRater.daysUntilPrompt = 7
        SwiftRater.usesUntilPrompt = 10

        SwiftRater.countryCode = "fr"

        SwiftRater.debugMode = true
        SwiftRater.appLaunched()
        return true
    }

App ID

可选,您可以显式设置 App ID。如果未设置,SwiftRater 将通过 bundle ID 从 appstore 获取 App ID。

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        SwiftRater.daysUntilPrompt = 7
        SwiftRater.usesUntilPrompt = 10

        SwiftRater.appID = "1104775712"

        SwiftRater.debugMode = true
        SwiftRater.appLaunched()
        return true
    }

演示

您可以在此仓库中找到演示应用程序。

作者

takecian, takecian@gmail.com

许可证

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