拿走即用之應(yīng)用評(píng)價(jià)提醒irate

irate

  • 給應(yīng)用做評(píng)價(jià)這個(gè)需求還是蠻普遍的,接下來就介紹下這個(gè)框架怎么應(yīng)用,以及自己在工作中的自己寫的類分享給大家。
  • 我自己做了兩個(gè)版本,一個(gè)是irate自帶的彈框,不做改變,一個(gè)是對(duì)irate自帶的彈框的文字包括按鈕的點(diǎn)擊的效果做了變化,供大家參考。

irate原生彈框不做更改

  • 圖片
原生彈框.png
  • 代碼SCAppRateManager.h
#import <Foundation/Foundation.h>

/**
 * app評(píng)分管理
 */
@interface SCAppRateManager : NSObject 

#pragma mark -
+ (SCAppRateManager *)shareSCAppRateManager;
- (void)setup;
// 彈出評(píng)價(jià)提醒
+ (void)checkAndRate;

@end
  • 代碼SCAppRateManager.m
#import "SCAppRateManager.h"
#import <iRate.h>

@interface SCAppRateManager () <iRateDelegate>

@end

@implementation SCAppRateManager

+ (SCAppRateManager *)shareSCAppRateManager
{
    static SCAppRateManager *__instance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        __instance = [[SCAppRateManager alloc] init];
    });
    return __instance;
}

- (void)setup
{
    [iRate sharedInstance].delegate = self;
    // 初始化Appstore id
    [[iRate sharedInstance] setAppStoreID:您的appstoreID];
    // 啟動(dòng)或者回到前臺(tái)就嘗試提醒
    [iRate sharedInstance].promptAtLaunch = NO;
    // 每個(gè)版本都彈
    [iRate sharedInstance].promptForNewVersionIfUserRated = YES;
    // 使用幾次后開始彈出
    [iRate sharedInstance].usesUntilPrompt = 3;
    // 多少天后開始彈出,默認(rèn)10次
    [iRate sharedInstance].daysUntilPrompt = 3;
    // 選擇“稍后提醒我”后的再提醒時(shí)間間隔,默認(rèn)是1天
    [iRate sharedInstance].remindPeriod = 3;
    [iRate sharedInstance].declinedThisVersion = NO;
}

+ (void)checkAndRate
{
    if ([[iRate sharedInstance] shouldPromptForRating]) {
        [[iRate sharedInstance] promptForRating];
    }
}

- (void)iRateUserDidDeclineToRateApp
{
    [iRate sharedInstance].lastReminded = [NSDate date];
}

@end
  • 效果介紹:每個(gè)版本都會(huì)彈,使用三天后,至少使用三次后,彈出,選擇“稍后在說”、“不,謝謝”后,會(huì)在三天后再次彈出,選擇“去評(píng)價(jià)”會(huì)直接跳轉(zhuǎn)到appstore這個(gè)應(yīng)用的下載頁面,而后這個(gè)版本不再?gòu)棾?。下個(gè)版本,無論之前有沒有評(píng)價(jià),都會(huì)再次彈出。

irate自定義彈窗alert

  • 圖片
自定義彈框.PNG
  • AppRateManager.h代碼
#import <Foundation/Foundation.h>

/**
 * app評(píng)分管理
 */
@interface AppRateManager : NSObject

#pragma mark -
+ (AppRateManager *)shareAppRateManager;
- (void)setup;
// 彈出評(píng)價(jià)提醒
- (void)checkAndRateWithController:(UIViewController *)VC;

@end
  • AppRateManager.m代碼
#import "AppRateManager.h"
#import "iRate.h"
// 反饋界面
#import "LXRMineFeedBackViewController.h"

@interface AppRateManager ()<iRateDelegate>

@property (nonatomic, weak) UIViewController *VC;

@end

@implementation AppRateManager

+ (AppRateManager *)shareAppRateManager
{
    static AppRateManager *__instance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        __instance = [[AppRateManager alloc] init];
    });
    return __instance;
}

- (void)setup
{
    [iRate sharedInstance].delegate = self;
    // 初始化Appstore id
    [[iRate sharedInstance] setAppStoreID:您的appstoreID];
    // 啟動(dòng)或者回到前臺(tái)就嘗試提醒
    [iRate sharedInstance].promptAtLaunch = NO;
    // 每個(gè)版本都彈
    [iRate sharedInstance].promptForNewVersionIfUserRated = YES;
    // 使用幾次后開始彈出
    [iRate sharedInstance].usesUntilPrompt = 3;
    // 多少天后開始彈出,默認(rèn)10次
    NSInteger firstRateAfterDays = 3;
    // 選擇“稍后提醒我”后的再提醒時(shí)間間隔,默認(rèn)是1天
    NSInteger interRateDays =  4;
    [iRate sharedInstance].declinedThisVersion = NO;
    NSString *rateTitle = @"給我評(píng)價(jià)";
    NSString *rateText =@"覺得這個(gè)app怎么樣,喜歡就來評(píng)價(jià)一下唄";
    [iRate sharedInstance].messageTitle = rateTitle;
    [iRate sharedInstance].message = rateText;
    [iRate sharedInstance].updateMessage = rateText;
    [iRate sharedInstance].rateButtonLabel = @"喜歡,支持一下";
    [iRate sharedInstance].remindButtonLabel = @"不喜歡,去吐槽";
    [iRate sharedInstance].cancelButtonLabel = @"以后再說";
}

- (void)checkAndRateWithController:(UIViewController *)VC
{
    self.VC = VC;
    if ([[iRate sharedInstance] shouldPromptForRating]) {
        [[iRate sharedInstance] promptForRating];
    }
}

#pragma mark irateDelegate

-(void)iRateUserDidRequestReminderToRateApp
{
    LXRMineFeedBackViewController *feedBackVC = [[LXRMineFeedBackViewController alloc] init];
    [self.VC presentViewController:feedBackVC animated:YES completion:nil];
}

-(void)iRateUserDidDeclineToRateApp
{
    [iRate sharedInstance].lastReminded = [NSDate date];
}

@end
  • 效果介紹:彈框時(shí)間及條件跟原生irate相似。點(diǎn)擊“喜歡,支持一下”,去到appstore,點(diǎn)擊“不喜歡,去吐槽”,去到應(yīng)用內(nèi)反饋界面,點(diǎn)擊“以后再說”,三天后再次彈出。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,706評(píng)論 4 61
  • github排名https://github.com/trending,github搜索:https://gith...
    小米君的demo閱讀 4,964評(píng)論 2 38
  • 【市況回顧】 周三市場(chǎng)走勢(shì)不佳。受周邊市場(chǎng)強(qiáng)勁回升的積極影響,早盤A股市場(chǎng)出現(xiàn)了高開的格局。其中,上證指數(shù)以322...
    偏偏人總是偏偏閱讀 213評(píng)論 0 0
  • 小的時(shí)候不懂事,老媽讓好好學(xué)習(xí)就好好學(xué)習(xí),讓我干活就干活,從上初中時(shí),就感慨為啥更善良的同學(xué)成績(jī)反而沒那么好。世界...
    追風(fēng)的小行星閱讀 279評(píng)論 0 0
  • 感覺突然想寫點(diǎn)兒東西了。 從開學(xué)以來就一直以為我徹底適應(yīng)了這種異地的生活,畢竟好說歹說這樣的日子也兩年多了。而且最...
    異地戀模范情侶閱讀 220評(píng)論 0 1

友情鏈接更多精彩內(nèi)容