SwiftyiRate中文说明
Posted Cocos2der
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftyiRate中文说明相关的知识,希望对你有一定的参考价值。
SwiftyiRate Github
SwiftyiRate Swift语言实现的app内评分,简单易用。
- Requirements
- Integration
- Usage
- Configuration
- Advanced properties
- Methods
- Delegate methods
- Localisation
- Example Projects
- Advanced Example
- Release Notes
Requirements
- ios 7.0+
- Xcode 7
Integration
CocoaPods (iOS 8+)
你可以使用 Cocoapods 来安装 SwiftyiRate
,添加pod
pod 'SwiftyiRate'
Podfile
:
platform :ios, '8.0'
use_frameworks!
target 'MyApp' do
pod 'SwiftyiRate', :git => 'https://github.com/PlayApple/SwiftyiRate.git'
end
Usage
Initialization
Add code in AppDelegate.swift
import SwiftyiRate
override class func initialize ()
//configure iRate
SwiftyiRate.sharedSwiftyiRate.daysUntilPrompt = 5
SwiftyiRate.sharedSwiftyiRate.usesUntilPrompt = 15
Configuration
SwiftyiRate类里面所有可配置的参数和接口全部列举在下面:
var appStoreID: Int?
这个必须匹配你的app apple id( iTunes Connect后台中app详情下可以看到),通常情况下你无需自己设置该id,SwiftyiRate会通过网络自动从app store获取app具体数据。无网络或者app未上架则无法获取。(此时可以通过设置为其他已经上线的app id用于测试)
var appStoreGenreID: Int?
app类型id,用于区分app为应用还是游戏类型,从而显示不同的rate信息提示框。自动从app store获取app具体数据,无需自己设置。
var appStoreCountry: Int?
两个字母的设备国家码,用于本地化语言,默认读取手机所在地区。如果你想永远出现固定国家语言,则可以修改你想要的国家代码。
var applicationName: String
app名称,默认读取自info.plist。你可以自定义为其他名称。
var applicationBundleID: String?
app的bundle ID,用于获取appStoreID和appStoreGenreID,默认读取自info.plist。无需自行修改。(除非你是测试情况下)。
var daysUntilPrompt: Float
至少使用天数,距离用户首次启动app超过该天数,才会提示用户评分。支持小数,0.5表示12小时。默认值:10。
var usesUntilPrompt: Int
至少使用(启动)次数,防止长时间未使用app,启动app后就出现评分情况。至少使用天数和至少使用(启动)次数同时满足才会提示用户评分。默认值10次。
var eventsUntilPrompt: Int
可提示事件次数,应用或者游戏在某一个使用场景下适合提示用户评分的话,你可以记录一次事件,类似usesUntilPrompt,至少使用天数和可提示事件次数同时满足才会提示用户评分。默认值10次。
var usesPerWeekForPrompt: Float
平均每次使用app次数,注意SwiftyiRate会计算app总使用次数除以距离安装的时间来计算每周使用平均值,只有超过这个值,才会允许评分,长时间不使用app,可能计算出来的平均每周次数为0。默认值0。
var remindPeriod: Float
下一次提示玩家的周期天数,玩家选择稍后提醒后,下一次提示的间隔天数。默认值1天。
var messageTitle: String
评分对话框的标题,如果你不想出现标题,可以设置为空字符串。
var message: String
评分对话框的文本信息,注意不要设置特别长(体验不好)。如果你不想出现文本信息,可以设置为空字符串。
var updateMessage: String
该文本信息用于新版本中已经在旧版本中评分过的用户,默认值用的message的值。
var cancelButtonLabel: String
评分对话框中取消评分按钮标题
var rateButtonLabel: String
评分对话框中前往评分按钮标题
var remindButtonLabel: String
评分对话框中稍后提示按钮标题,设置为空字符串则不出现该按钮。
var useAllAvailableLanguages: Bool
支持本地化语言,不管你是否已经本地化了app,SwiftyiRate默认会使用SwiftyiRate.bundle下语言包,
如果你希望使用自己的本地化文件,请设置为false。默认值为true(所使用的本地化key下面有介绍)
var promptForNewVersionIfUserRated: Bool
每个新版本都提示用户评分,由于app store会清空新版的评分,所以默认下SwiftyiRate每个版本都会提示用户评分,直到用户选择了拒绝评分。默认值false
var onlyPromptIfLatestVersion: Bool
仅在最新版本中提示用户评分,默认为true。设置为false的话,如果用户未使用最新版本,也会提示用户评分。
var onlyPromptIfMainWindowIsAvailable: Bool
mac app的提示框设置,该功能开发中…
var promptAtLaunch: Bool
是否启动app就提示用户评分(满足条件下),如果你设置为false,启动app时候不会弹出评分框,但是评分条件会继续执行并跟踪。你可以使用该选择自定义一些自己的评分框弹出时机和方式。默认值:true
var verboseLogging: Bool
是否打印log到Xcode控制台,默认false。release版注意设置为false。
var previewMode: Bool
预览模式,如果设置为true,在promptAtLaunch=true情况下会忽略弹出条件,直接弹出用户评分框,你可以用于测试。release版本注意设置为false,默认值false。
Advanced properties
如果SwiftyiRate默认规则和UI不满足你的要求,你可以通过下面的delegate协议和内部状态实现自定义。
var ratingsURL: NSURL?
app的评分网址,自动获取。
var firstUsed: NSDate?
app首次启动时间,用于daysUntilPrompt规则。
var lastReminded: NSDate?
最近一次提示用户评分的时候,用于再次提示用户。
var usesCount: Int
app启动次数
var eventCount: Int
已经记录了可触发评分事件的次数
var usesPerWeek: Float
用户平均每周使用次数
var declinedThisVersion: Bool
用户点击了取消(拒绝)评分按钮,SwiftyiRate不使用该属性,如果你自定义逻辑,可能会需要。
var declinedAnyVersion: Bool
是否拒绝任何版本的评分,如果你设置为true,SwiftyiRate将永远不会主动提示用户评分。默认false
var ratedThisVersion: Bool
标记用户是否已经评论了该版本
var ratedAnyVersion: Bool
标记用户是否评分了任何版本
weak var delegate: SwiftyiRateDelegate?
代理协议,如果你使用SwiftyiRate帮你管理评分,你无需设置。如果你希望自定义,可以实现该代理协议。后面文档会介绍。
Methods
除了上面的一些属性,SwiftyiRate还有下面一些方法
func logEvent(deferPrompt: Bool)
记录可评分事件次数,你可以在app中调用该方法,用于记录可评分事件次数,deferPrompt为true在满足条件情况下,下次启动app时弹出评分。deferPrompt为false则满足条件就立刻弹出提示。
func shouldPromptForRating() -> Bool
是否满足评分条件,如果执行了该方法则将不会执行iRateShouldPromptForRating
delegate
func promptForRating()
该方法将立即显示评级提示框没有检查,如果App Store可访问并且没有调用SwiftyiRateShouldPromptForRating,如果你想修改调用该方法的时机,你可以修改其他相关属性或者直接修改promptIfNetworkAvailable
方法
func promptIfNetworkAvailable()
该方法用于检测app在app store是否有效,SwiftyiRateShouldPromptForRating协议方法会先被调用,所以你可以拦截该检测。如果app未上架,你需要手工设置appStoreID
否则该检测会失败。
func promptIfAllCriteriaMet()
如果所有条件都满足,则会弹出评分。SwiftyiRateShouldPromptForRating会先执行,你也可以拦截。
func openRatingsPageInAppStore()
用户正在打开评分网址,会先执行iRateShouldOpenAppStore
函数,如果你实现了该协议且返回false,则不会打开网址,此时你需要自己打开网址。如果打开成功会执行iRateDidOpenAppStore
,打开失败会执行 iRateCouldNotConnectToAppStore
Delegate methods
的SwiftyiRateDelegate协议提供了下面的方法,可用于拦截SwiftyiRate事件和重写默认行为。所有的方法都是可选的。
optional func iRateCouldNotConnectToAppStore(error: NSError)
SwiftyiRate无法连接到app store,导致原因可能是无网络、app id不正确。
optional func iRateDidDetectAppUpdate()
SwiftyiRate检测到对比上一次启动时间,本次启动的app已经被更新。
optional func iRateShouldPromptForRating() -> Bool
已经满足条件,是否提示用户评分,返回ture则显示提示框。你可以通过该方法,拦截默认提示框,实现自定义提示逻辑。
optional func iRateDidPromptForRating()
已经显示了评分提示框,你可以在此方法中记录评分数据,用于数据统计分析用户评分比例。
optional func iRateUserDidAttemptToRateApp()
用户点击了前往评分按钮。该方法仅在SwiftyiRate默认行为下被调用。如果你自定义了逻辑或者使用了openRatingsPageInAppStore
拦截,该协议方法不会被执行。
optional func iRateUserDidDeclineToRateApp()
用户点击了取消(拒绝)评分按钮,该方法仅在SwiftyiRate默认行为下被调用。你可以在此方法中记录评分数据,用于数据统计分析用户评分比例。
optional func iRateUserDidRequestReminderToRateApp()
用户点击了稍后评分按钮,该方法仅在SwiftyiRate默认行为下被调用。你可以在此方法中记录评分数据,用于数据统计分析用户评分比例。
optional func iRateShouldOpenAppStore() -> Bool
SwiftyiRate将要尝试打开app store,你可以返回false用户拦截该行为。从而实现自定义逻辑。
optional func SwiftyiRateDidOpenAppStore()
SwiftyiRate已经打开了App Store评分网址
Localisation
SwiftyiRate默认使用SwiftyiRate.bundle来实现字符串本地化为多种语言。
下面是SwiftyiRate 字符串 key:
private static let SwiftyiRateMessageTitleKey = "iRateMessageTitle"
private static let SwiftyiRateAppMessageKey = "iRateAppMessage"
private static let SwiftyiRateGameMessageKey = "iRateGameMessage"
private static let SwiftyiRateUpdateMessageKey = "iRateUpdateMessage"
private static let SwiftyiRateCancelButtonKey = "iRateCancelButton"
private static let SwiftyiRateRemindButtonKey = "iRateRemindButton"
private static let SwiftyiRateRateButtonKey = "iRateRateButton"
如果你希望SwiftyiRate使用自己的本地化文件,你可以设置useAllAvailableLanguages
为false,然后添加上面的key到自己的本地化文件。
请不要直接修改SwiftyiRate.bundle,防止更新SwiftyiRate的时候出现数据丢失。
当然你可以直接修改SwiftyiRate所有字符串内容。
override class func initialize ()
// overriding the default SwiftyiRate strings
SwiftyiRate.sharedSwiftyiRate.messageTitle = NSLocalizedString("kMessageTitle", comment: "iRate message title")
SwiftyiRate.sharedSwiftyiRate.message = NSLocalizedString("kMessage", comment: "iRate message")
SwiftyiRate.sharedSwiftyiRate.cancelButtonLabel = NSLocalizedString("kCancelButtonLabel", comment: "Decline Button")
SwiftyiRate.sharedSwiftyiRate.remindButtonLabel = NSLocalizedString("kRemindButtonLabel", comment: "Remind Button")
SwiftyiRate.sharedSwiftyiRate.rateButtonLabel = NSLocalizedString("kRateButtonLabel", comment: "Rate Button")
Example Projects
所有的示例工程都设置了previewMode为true,所以会出现一启动就提示评分情况。
Advanced Example
高级示例用于测试SwiftyiRateDelegate和自定义逻辑
Release Notes
Version 1.0
- Initial release.
以上是关于SwiftyiRate中文说明的主要内容,如果未能解决你的问题,请参考以下文章