国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iRate快速繞坑使用

2019-11-14 18:02:23
字體:
來源:轉載
供稿:網友

目的

iRate庫通過激勵用戶去AppStore打分,來幫助你提升iphone和Mac App的質量。這是取得經常使用的目標用戶的意見的最好的方式之一。

方案(小弟想說的重點)

以前,App中都是顯示的添加“去打分”功能項。但是由于蘋果審核人員工作的時候會根據心情,判斷是否有“引導用戶打分行為”而Reject咱辛苦搞好的App,所以建議把“去打分”功能項隱藏。

用別人的庫還是得看懂源碼,要不真不放心,對吧?!

別的地方都可以不看,唯獨shouldPRomptForRating這個方法必須看,用于判斷是否滿足提醒條件。

有兩套方案可以玩:

方案1:

通過配置iRate,在App啟動的時候檢查配置和AppStore,來進行判斷是否需要彈出打分提醒。采用此方案,無需對iRate源碼進行剪裁,但是每次啟動都要檢查AppStore,自定義能力較差。

方案2:

通過配置iRate,去掉檢查AppStore的部分,根據自己服務端提供的信息,來判斷是否需要彈出打分提醒。采用此方案,靈活性較高,App在審核中可以通過服務端關掉提醒,待通過審核后放開提醒。

支持的 OS & SDK 版本

支持環境- iOS 8.3 / Mac OS 10.10 (Xcode 6.1, Apple LLVM compiler 6.1)

ARC 支持

從1.7開始,iRate需要使用ARC。如果你在使用非ARC項目,只需要在iRate.m上添加“-fobjc-arc”編譯標志(Build Phases->Compile Sources->雙擊iRate.m->添加-fobjc-arc)

安裝

集成iRate時,只需要添加iRate.h,.m,.bundle三個文件到項目中,如果不在乎本地化也可以忽略.bundle文件。

iRate是典型的安全不用配置,就可以簡單的運行起來,內部是通過應用的bundle ID到AppStore中查找AppID。

如果想自定義iRate,最好在App完成啟動之前,最簡單的方式是添加配置代碼到AppDelegate的initialize方法中:(本人不推薦放在這里,建議放到完全啟動完App后進行)

#import "iRate.h"+ (void)initialize{	//configure iRate	[iRate sharedInstance].daysUntilPrompt = 5;	[iRate sharedInstance].usesUntilPrompt = 15;}

配置項

可以通過配置iRate中的相關屬性,來影響提醒彈出的行為,主要是

@property (nonatomic, assign) float daysUntilPrompt;//啟動幾次后開始彈出,默認10次@property (nonatomic, assign) NSUInteger usesUntilPrompt;//使用幾次后開始彈出,默認10次@property (nonatomic, assign) NSUInteger eventsUntilPrompt;//發生幾次事件后彈出,默認是10次,不是啟動事件,相當于自定義事件@property (nonatomic, assign) float usesPerWeekForPrompt;//每周最多彈出幾次@property (nonatomic, assign) float remindPeriod;//選擇“稍后提醒我”后的再提醒時間間隔,默認是1天@property (nonatomic, copy) NSString *messageTitle;//提醒框的title@property (nonatomic, copy) NSString *message;//提醒消息@property (nonatomic, copy) NSString *updateMessage;//已經打過分的用戶的提醒消息@property (nonatomic, copy) NSString *cancelButtonLabel;//取消按鈕文字(命名明顯不規范)@property (nonatomic, copy) NSString *rateButtonLabel;//去提醒按鈕文本@property (nonatomic, copy) NSString *remindButtonLabel;//稍后提醒我按鈕文本@property (nonatomic, assign) BOOL useAllAvailableLanguages;//是否支持本地化@property (nonatomic, assign) BOOL promptForNewVersionIfUserRated;//每個版本都彈出提醒@property (nonatomic, assign) BOOL onlyPromptIfLatestVersion;//只是最新版提醒@property (nonatomic, assign) BOOL promptAtLaunch;//啟動或者回到前臺就嘗試提醒@property (nonatomic, assign) BOOL verboseLogging;//控制臺輸出log@property (nonatomic, assign) BOOL useUIAlertControllerIfAvailable;//使用UIAlertController

高級特性

@property (nonatomic, strong) NSURL *ratingsURL;//打分頁面的URL@property (nonatomic, strong) NSDate *firstUsed;//第一次彈出時間,參考daysUntilPrompt設置@property (nonatomic, strong) NSDate *lastReminded;//最后一次彈出提醒時間@property (nonatomic, assign) NSUInteger usesCount;//當前版本彈出次數@property (nonatomic, assign) NSUInteger eventCount;//當前版本事件次數@property (nonatomic, readonly) float usesPerWeek;//當前版本每周彈出次數@property (nonatomic, assign) BOOL declinedThisVersion;//用戶是否拒絕當前版本打分請求@property (nonatomic, assign) BOOL declinedAnyVersion;//用戶是否拒絕所有版本打分請求,設置YES不提醒@property (nonatomic, assign) BOOL ratedThisVersion;//當前版本是否已經打過分@property (nonatomic, readonly) BOOL ratedAnyVersion;//之前版本都打過分@property (nonatomic, assign) id<iRateDelegate> delegate;

方法接口

- (void)logEvent:(BOOL)deferPrompt;//發生事件進行添加- (BOOL)shouldPromptForRating;//通過對上面各個配置參數的檢查,返回YES可以提醒,NO不滿足提醒條件- (void)promptForRating;//彈出提醒- (void)promptIfNetworkAvailable;//如果網絡有效將檢查AppStore的App信息- (void)promptIfAllCriteriaMet;//檢查shouldPromptForRating和promptIfNetworkAvailable方法是否滿足- (void)openRatingsPageInAppStore;//打開打分提醒AppStore頁面

代理方法

iRateDelegate代理提供下面一些方法,通過這些方法,可以打斷或重寫相關方法來影響默認行為。所有方法都是可選的。這些方法跟上面的iRate方法有些關聯,使用時注意。具體含義參考命名就可以了。

- (void)iRateCouldNotConnectToAppStore:(NSError *)error;- (void)iRateDidDetectAppUpdate;- (BOOL)iRateShouldPromptForRating;- (void)iRateDidPromptForRating;- (void)iRateUserDidAttemptToRateApp;- (void)iRateUserDidDeclineToRateApp;- (void)iRateUserDidRequestReminderToRateApp;- (BOOL)iRateShouldOpenAppStore;- (void)iRateDidOpenAppStore;

本地化

iRate支持很多語言的本地化,參見bundle,一些常用key:

static NSString *const iRateMessageTitleKey = @"iRateMessageTitle";static NSString *const iRateAppMessageKey = @"iRateAppMessage";static NSString *const iRateGameMessageKey = @"iRateGameMessage";static NSString *const iRateUpdateMessageKey = @"iRateUpdateMessage";static NSString *const iRateCancelButtonKey = @"iRateCancelButton";static NSString *const iRateRemindButtonKey = @"iRateRemindButton";static NSString *const iRateRateButtonKey = @"iRateRateButton";

注: 文章由我們iOS122的小伙伴 @笨兒高興~ 整理,喜歡就一起參與: iOS122 任務池


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 夹江县| 新密市| 顺昌县| 车致| 壶关县| 蒙山县| 侯马市| 和平县| 鄂伦春自治旗| 冷水江市| 斗六市| 香河县| 江阴市| 启东市| 宜君县| 霍山县| 彩票| 黄平县| 泗洪县| 陇南市| 登封市| 巴南区| 紫云| 南部县| 个旧市| 广昌县| 内江市| 姚安县| 南澳县| 新郑市| 芮城县| 兴宁市| 扶风县| 邓州市| 盘锦市| 天全县| 栖霞市| 托里县| 富裕县| 湖南省| 杂多县|