應(yīng)用評(píng)分功能

7123FA30-BDF8-4362-9B8F-61FF0B9CB7AF.png

項(xiàng)目中添加一個(gè)應(yīng)用評(píng)分功能,其實(shí)就是做一個(gè)彈出框,跳轉(zhuǎn)到App Store 中我們的應(yīng)用位置,需要在開發(fā)者平臺(tái)上App信息找到我們的App的AppID,有這個(gè)我們就可以跳轉(zhuǎn)到我們的應(yīng)用了


11AF44EA-29FF-4E69-BFA9-B4D8EB7521FF.png

創(chuàng)建一個(gè)類,提供兩個(gè)接口,一個(gè)是appID,還有一個(gè)推出這個(gè)控制器方法,在.h文件中聲明以下屬性和方法:
UIAlertController *alertController;/// 這個(gè)是推出提示的控制器
@property (nonatomic,strong) NSString * myAppID;//appID

  • (void)showGotoAppStore:(UIViewController *)VC;

.m代碼如下:

- (void)showGotoAppStore:(UIViewController *)VC{

//當(dāng)前版本號(hào)
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
float appVersion = [[infoDictionary objectForKey:@"CFBundleShortVersionString"] floatValue];
//userDefaults里的天數(shù)
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
int udtheDays = [[userDefaults objectForKey:@"theDays"] intValue];
//userDefaults里的版本號(hào)
float udAppVersion = [[userDefaults objectForKey:@"appVersion"] floatValue];


NSLog(@"%.2lf",[[userDefaults objectForKey:@"appVersion"] floatValue]);

//userDefaults里用戶上次的選項(xiàng)
int udUserChoose = [[userDefaults objectForKey:@"userOptChoose"] intValue];
//時(shí)間戳的天數(shù)
NSTimeInterval interval = [[NSDate date] timeIntervalSince1970];
int daySeconds = 24 * 60 * 60;
NSInteger theDays = interval / daySeconds;

//版本升級(jí)之后的處理,全部規(guī)則清空,開始彈窗
if (udAppVersion && appVersion>udAppVersion) {
    [userDefaults removeObjectForKey:@"theDays"];
    [userDefaults removeObjectForKey:@"appVersion"];
    [userDefaults removeObjectForKey:@"userOptChoose"];
    [self alertUserCommentView:VC];
}
//1,從來沒彈出過的
//2,用戶選擇??我要吐槽让禀,5天之后再彈出
//3,用戶選擇??殘忍拒絕后谤牡,7天內(nèi)孩哑,每過1天會(huì)彈一次
//4,用戶選擇??殘忍拒絕的10天后,才會(huì)彈出
else if (!udUserChoose ||
         (udUserChoose==2 && theDays-udtheDays>5) ||
         (udUserChoose>=3 && theDays-udtheDays<=7 && theDays-udtheDays>udUserChoose-3) ||
         (udUserChoose>=3 && theDays-udtheDays>10))
{
    [self alertUserCommentView:VC];
    
}

warning 測(cè)試的時(shí)候使用

/// 測(cè)試的時(shí)候使用
// [self alertUserCommentView:VC];

}

-(void)alertUserCommentView:(UIViewController *)VC{

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
    
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    //當(dāng)前時(shí)間戳的天數(shù)
    NSTimeInterval interval = [[NSDate date] timeIntervalSince1970];
    int daySeconds = 24 * 60 * 60;
    NSInteger theDays = interval / daySeconds;
    //當(dāng)前版本號(hào)
    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
    float appVersion = [[infoDictionary objectForKey:@"CFBundleShortVersionString"] floatValue];
    //userDefaults里版本號(hào)
    float udAppVersion = [[userDefaults objectForKey:@"appVersion"] intValue];
    //userDefaults里用戶選擇項(xiàng)目
    int udUserChoose = [[userDefaults objectForKey:@"userOptChoose"] intValue];
    //userDefaults里用戶天數(shù)
    int udtheDays = [[userDefaults objectForKey:@"theDays"] intValue];
    
    //當(dāng)前版本比userDefaults里版本號(hào)高
    if (appVersion>udAppVersion) {
        [userDefaults setObject:[NSString stringWithFormat:@"%f",appVersion] forKey:@"appVersion"];
        [[NSUserDefaults standardUserDefaults] synchronize];
         NSLog(@"%f",[[userDefaults objectForKey:@"appVersion"] floatValue]);
         NSLog(@"%f",appVersion);
    }
    
    
    alertController = [UIAlertController alertControllerWithTitle:@"致開發(fā)者的一封信" message:@"有了您的支持才能更好的為您服務(wù),提供更加優(yōu)質(zhì)的,更加適合您的App,當(dāng)然您也可以直接反饋問題給到我們" preferredStyle:(UIAlertControllerStyleAlert)];
    
    UIAlertAction *refuseAction = [UIAlertAction actionWithTitle:@"??殘忍拒絕" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction *action) {
        
        [userDefaults setObject:@"1" forKey:@"userOptChoose"];
        [userDefaults setObject:[NSString stringWithFormat:@"%d",(int)theDays] forKey:@"theDays"];
    }];
    
    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"??好評(píng)贊賞" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction *action) {
        
        [userDefaults setObject:@"2" forKey:@"userOptChoose"];
        [userDefaults setObject:[NSString stringWithFormat:@"%d",(int)theDays] forKey:@"theDays"];
        
        NSString *str = [NSString stringWithFormat:
                         @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",
                         self.myAppID ];
        
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
        
    }];
    
    UIAlertAction *showAction = [UIAlertAction actionWithTitle:@"??我要吐槽" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction *action) {
        
        if (udUserChoose<=3 || theDays-[[userDefaults objectForKey:@"theDays"] intValue]>10) {
            [userDefaults setObject:@"3" forKey:@"userOptChoose"];
            [userDefaults setObject:[NSString stringWithFormat:@"%d",(int)theDays] forKey:@"theDays"];
        }else{
            [userDefaults setObject:[NSString stringWithFormat:@"%d",(int)(theDays-udtheDays+3)] forKey:@"userOptChoose"];
        }
        NSString *str = [NSString stringWithFormat:
                         @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",
                         self.myAppID ];
        
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
    }];
    
    
    [alertController addAction:refuseAction];
    [alertController addAction:okAction];
    [alertController addAction:showAction];
    
    //        NSLog(@"%@",[userDefaults objectForKey:@"appVersion"]);
    //        NSLog(@"%@",[userDefaults objectForKey:@"userOptChoose"]);
    //        NSLog(@"%@",[userDefaults objectForKey:@"theDays"]);
    
    [VC presentViewController:alertController animated:YES completion:nil];
    
}else{

#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_8_0
alertViewTest = [[UIAlertView alloc] initWithTitle:@"致開發(fā)者的一封信" message:@"有了您的支持才能更好的為您服務(wù),提供更加優(yōu)質(zhì)的箕母,更加適合您的App,當(dāng)然您也可以直接反饋問題給到我們" delegate:self cancelButtonTitle:@"??殘忍拒絕" otherButtonTitles:@"??好評(píng)贊賞",@"??我要吐槽", nil];
[alertViewTest show];
#endif
}

}

#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_8_0

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
//當(dāng)前時(shí)間戳的天數(shù)
NSTimeInterval interval = [[NSDate date] timeIntervalSince1970];
int daySeconds = 24 * 60 * 60;
NSInteger theDays = interval / daySeconds;
//當(dāng)前版本號(hào)
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
float appVersion = [[infoDictionary objectForKey:@"CFBundleShortVersionString"] floatValue];
//userDefaults里版本號(hào)
float udAppVersion = [[userDefaults objectForKey:@"appVersion"] intValue];
//userDefaults里用戶選擇項(xiàng)目
int udUserChoose = [[userDefaults objectForKey:@"userOptChoose"] intValue];
//userDefaults里用戶天數(shù)
int udtheDays = [[userDefaults objectForKey:@"theDays"] intValue];

//當(dāng)前版本比userDefaults里版本號(hào)高
if (appVersion>udAppVersion) {
    [userDefaults setObject:[NSString stringWithFormat:@"%f",appVersion] forKey:@"appVersion"];
}

switch (buttonIndex) {
    case 0: //殘忍的拒絕
        if (udUserChoose<=3 || theDays-[[userDefaults objectForKey:@"theDays"] intValue]>10) {
            [userDefaults setObject:@"3" forKey:@"userOptChoose"];
            [userDefaults setObject:[NSString stringWithFormat:@"%d",(int)theDays] forKey:@"theDays"];
        }else{
            [userDefaults setObject:[NSString stringWithFormat:@"%d",(int)(theDays-udtheDays+3)] forKey:@"userOptChoose"];
        }
        break;
    case 1:{ //好評(píng)
        [userDefaults setObject:@"1" forKey:@"userOptChoose"];
        [userDefaults setObject:[NSString stringWithFormat:@"%d",(int)theDays] forKey:@"theDays"];
        NSString *str = [NSString stringWithFormat:
                         @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",
                         self.myAppID ];
        
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
    }
        break;
    case 2:{ //不好用俱济,我要提意見
        [userDefaults setObject:@"2" forKey:@"userOptChoose"];
        [userDefaults setObject:[NSString stringWithFormat:@"%d",(int)theDays] forKey:@"theDays"];
        NSString *str = [NSString stringWithFormat:
                         @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",
                         self.myAppID ];
        
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
    }
        break;
        
    default:
        break;
}
//    NSLog(@"%@",[userDefaults objectForKey:@"appVersion"]);
//    NSLog(@"%@",[userDefaults objectForKey:@"userOptChoose"]);
//    NSLog(@"%@",[userDefaults objectForKey:@"theDays"]);

}

#endif

使用的方法:
在合適的位置:

   //用戶好評(píng)系統(tǒng)
    DAppStore *toAppStore = [[DAppStore alloc]init];
    toAppStore.myAppID = @"你的應(yīng)用的appID";
    [toAppStore showGotoAppStore:self];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嘶是,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蛛碌,更是在濱河造成了極大的恐慌聂喇,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件左医,死亡現(xiàn)場(chǎng)離奇詭異授帕,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)浮梢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門跛十,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秕硝,你說我怎么就攤上這事芥映。” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵奈偏,是天一觀的道長坞嘀。 經(jīng)常有香客問我,道長惊来,這世上最難降的妖魔是什么丽涩? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮裁蚁,結(jié)果婚禮上矢渊,老公的妹妹穿的比我還像新娘。我一直安慰自己枉证,他們只是感情好矮男,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著室谚,像睡著了一般毡鉴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秒赤,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天猪瞬,我揣著相機(jī)與錄音,去河邊找鬼倒脓。 笑死撑螺,一個(gè)胖子當(dāng)著我的面吹牛含思,可吹牛的內(nèi)容都是我干的崎弃。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼含潘,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼饲做!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起遏弱,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤盆均,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后漱逸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泪姨,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年饰抒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肮砾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袋坑,死狀恐怖仗处,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤婆誓,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布吃环,位于F島的核電站,受9級(jí)特大地震影響洋幻,放射性物質(zhì)發(fā)生泄漏郁轻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一文留、第九天 我趴在偏房一處隱蔽的房頂上張望范咨。 院中可真熱鬧,春花似錦厂庇、人聲如沸渠啊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽替蛉。三九已至,卻和暖如春拄氯,著一層夾襖步出監(jiān)牢的瞬間躲查,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國打工译柏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留镣煮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓鄙麦,卻偏偏與公主長得像典唇,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胯府,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android App調(diào)用應(yīng)用市場(chǎng)介衔,對(duì)應(yīng)用進(jìn)行評(píng)價(jià)。具體實(shí)現(xiàn)代碼如下: ``` Uri uri = Uri.par...
    Rave_Tian閱讀 2,144評(píng)論 0 1
  • 自從iOS9出來之后骂因,需要使用UIAlertController來彈出彈框炎咖,不在提倡使用UIAlertView了,...
    南京楊小兵閱讀 554評(píng)論 1 0
  • 1.https://www.jpush.cn/極光網(wǎng)創(chuàng)建新的應(yīng)用 2.https://developer.appl...
    XLsn0w閱讀 593評(píng)論 0 0
  • 時(shí)間2016-11-23 09:35:54CocoaChina 原文http://www.cocoachina.c...
    Johnny_Chang閱讀 577評(píng)論 0 5
  • 你知寒波,空氣含著露水 早晨的光乘盼,一寸比一寸亮 海面留著昨夜星辰,灑下的月光 只是夜打船艙俄烁,夢(mèng)霧冰涼 鳴曉時(shí)分绸栅,柳笛回...
    人間觀光錄閱讀 211評(píng)論 5 6